YES 33.789 H-Termination proof of /home/matraf/haskell/eval_FullyBlown_Fast/FiniteMap.hs
H-Termination of the given Haskell-Program with start terms could successfully be proven:



HASKELL
  ↳ LR

mainModule FiniteMap
  ((intersectFM :: Ord a => FiniteMap (Maybe a) b  ->  FiniteMap (Maybe a) b  ->  FiniteMap (Maybe a) b) :: Ord a => FiniteMap (Maybe a) b  ->  FiniteMap (Maybe a) b  ->  FiniteMap (Maybe a) b)

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap b a = EmptyFM  | Branch b a Int (FiniteMap b a) (FiniteMap b a


  instance (Eq a, Eq b) => Eq (FiniteMap b a) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  addToFM :: Ord a => FiniteMap a b  ->  a  ->  b  ->  FiniteMap a b
addToFM fm key elt addToFM_C (\old new ->new) fm key elt

  addToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a
addToFM_C combiner EmptyFM key elt unitFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt 
 | new_key < key = 
mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
 | new_key > key = 
mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
 | otherwise = 
Branch new_key (combiner elt new_elt) size fm_l fm_r

  deleteMax :: Ord b => FiniteMap b a  ->  FiniteMap b a
deleteMax (Branch key elt _ fm_l EmptyFMfm_l
deleteMax (Branch key elt _ fm_l fm_rmkBalBranch key elt fm_l (deleteMax fm_r)

  deleteMin :: Ord b => FiniteMap b a  ->  FiniteMap b a
deleteMin (Branch key elt _ EmptyFM fm_rfm_r
deleteMin (Branch key elt _ fm_l fm_rmkBalBranch key elt (deleteMin fm_l) fm_r

  emptyFM :: FiniteMap a b
emptyFM EmptyFM

  findMax :: FiniteMap b a  ->  (b,a)
findMax (Branch key elt _ _ EmptyFM(key,elt)
findMax (Branch key elt _ _ fm_rfindMax fm_r

  findMin :: FiniteMap b a  ->  (b,a)
findMin (Branch key elt _ EmptyFM _) (key,elt)
findMin (Branch key elt _ fm_l _) findMin fm_l

  fmToList :: FiniteMap b a  ->  [(b,a)]
fmToList fm foldFM (\key elt rest ->(key,elt: rest) [] fm

  foldFM :: (c  ->  a  ->  b  ->  b ->  b  ->  FiniteMap c a  ->  b
foldFM k z EmptyFM z
foldFM k z (Branch key elt _ fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  glueBal :: Ord b => FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
glueBal EmptyFM fm2 fm2
glueBal fm1 EmptyFM fm1
glueBal fm1 fm2 
 | sizeFM fm2 > sizeFM fm1 = 
mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2)
 | otherwise = 
mkBalBranch mid_key1 mid_elt1 (deleteMax fm1) fm2 where 
mid_elt1 (\(_,mid_elt1) ->mid_elt1) vv2
mid_elt2 (\(_,mid_elt2) ->mid_elt2) vv3
mid_key1 (\(mid_key1,_) ->mid_key1) vv2
mid_key2 (\(mid_key2,_) ->mid_key2) vv3
vv2 findMax fm1
vv3 findMin fm2

  glueVBal :: Ord a => FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
glueVBal EmptyFM fm2 fm2
glueVBal fm1 EmptyFM fm1
glueVBal fm_l@(Branch key_l elt_l _ fm_ll fm_lrfm_r@(Branch key_r elt_r _ fm_rl fm_rr
 | sIZE_RATIO * size_l < size_r = 
mkBalBranch key_r elt_r (glueVBal fm_l fm_rl) fm_rr
 | sIZE_RATIO * size_r < size_l = 
mkBalBranch key_l elt_l fm_ll (glueVBal fm_lr fm_r)
 | otherwise = 
glueBal fm_l fm_r where 
size_l sizeFM fm_l
size_r sizeFM fm_r

  intersectFM :: Ord a => FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
intersectFM fm1 fm2 intersectFM_C (\left right ->right) fm1 fm2

  intersectFM_C :: Ord c => (a  ->  b  ->  d ->  FiniteMap c a  ->  FiniteMap c b  ->  FiniteMap c d
intersectFM_C combiner fm1 EmptyFM emptyFM
intersectFM_C combiner EmptyFM fm2 emptyFM
intersectFM_C combiner fm1 (Branch split_key elt2 _ left right
 | Maybe.isJust maybe_elt1 = 
mkVBalBranch split_key (combiner elt1 elt2) (intersectFM_C combiner lts left) (intersectFM_C combiner gts right)
 | otherwise = 
glueVBal (intersectFM_C combiner lts left) (intersectFM_C combiner gts right) where 
elt1 (\(Just elt1) ->elt1) vv1
gts splitGT fm1 split_key
lts splitLT fm1 split_key
maybe_elt1 lookupFM fm1 split_key
vv1 maybe_elt1

  lookupFM :: Ord b => FiniteMap b a  ->  b  ->  Maybe a
lookupFM EmptyFM key Nothing
lookupFM (Branch key elt _ fm_l fm_rkey_to_find 
 | key_to_find < key = 
lookupFM fm_l key_to_find
 | key_to_find > key = 
lookupFM fm_r key_to_find
 | otherwise = 
Just elt

  mkBalBranch :: Ord a => a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkBalBranch key elt fm_L fm_R 
 | size_l + size_r < 2 = 
mkBranch 1 key elt fm_L fm_R
 | size_r > sIZE_RATIO * size_l = 
case fm_R of
  Branch _ _ _ fm_rl fm_rr
 | sizeFM fm_rl < 2 * sizeFM fm_rr -> 
single_L fm_L fm_R
 | otherwise -> 
double_L fm_L fm_R
 | size_l > sIZE_RATIO * size_r = 
case fm_L of
  Branch _ _ _ fm_ll fm_lr
 | sizeFM fm_lr < 2 * sizeFM fm_ll -> 
single_R fm_L fm_R
 | otherwise -> 
double_R fm_L fm_R
 | otherwise = 
mkBranch 2 key elt fm_L fm_R where 
double_L fm_l (Branch key_r elt_r _ (Branch key_rl elt_rl _ fm_rll fm_rlr) fm_rrmkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l _ fm_ll (Branch key_lr elt_lr _ fm_lrl fm_lrr)) fm_r mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
single_L fm_l (Branch key_r elt_r _ fm_rl fm_rrmkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr
single_R (Branch key_l elt_l _ fm_ll fm_lrfm_r mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l sizeFM fm_L
size_r sizeFM fm_R

  mkBranch :: Ord b => Int  ->  b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkBranch which key elt fm_l fm_r 
let 
result Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
in result
 where 
balance_ok True
left_ok 
case fm_l of
  EmptyFM-> True
  Branch left_key _ _ _ _-> 
let 
biggest_left_key fst (findMax fm_l)
in biggest_left_key < key
left_size sizeFM fm_l
right_ok 
case fm_r of
  EmptyFM-> True
  Branch right_key _ _ _ _-> 
let 
smallest_right_key fst (findMin fm_r)
in key < smallest_right_key
right_size sizeFM fm_r
unbox :: Int  ->  Int
unbox x x

  mkVBalBranch :: Ord a => a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkVBalBranch key elt EmptyFM fm_r addToFM fm_r key elt
mkVBalBranch key elt fm_l EmptyFM addToFM fm_l key elt
mkVBalBranch key elt fm_l@(Branch key_l elt_l _ fm_ll fm_lrfm_r@(Branch key_r elt_r _ fm_rl fm_rr
 | sIZE_RATIO * size_l < size_r = 
mkBalBranch key_r elt_r (mkVBalBranch key elt fm_l fm_rl) fm_rr
 | sIZE_RATIO * size_r < size_l = 
mkBalBranch key_l elt_l fm_ll (mkVBalBranch key elt fm_lr fm_r)
 | otherwise = 
mkBranch 13 key elt fm_l fm_r where 
size_l sizeFM fm_l
size_r sizeFM fm_r

  sIZE_RATIO :: Int
sIZE_RATIO 5

  sizeFM :: FiniteMap b a  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch _ _ size _ _) size

  splitGT :: Ord a => FiniteMap a b  ->  a  ->  FiniteMap a b
splitGT EmptyFM split_key emptyFM
splitGT (Branch key elt _ fm_l fm_rsplit_key 
 | split_key > key = 
splitGT fm_r split_key
 | split_key < key = 
mkVBalBranch key elt (splitGT fm_l split_key) fm_r
 | otherwise = 
fm_r

  splitLT :: Ord a => FiniteMap a b  ->  a  ->  FiniteMap a b
splitLT EmptyFM split_key emptyFM
splitLT (Branch key elt _ fm_l fm_rsplit_key 
 | split_key < key = 
splitLT fm_l split_key
 | split_key > key = 
mkVBalBranch key elt fm_l (splitLT fm_r split_key)
 | otherwise = 
fm_l

  unitFM :: b  ->  a  ->  FiniteMap b a
unitFM key elt Branch key elt 1 emptyFM emptyFM


module Maybe where
  import qualified FiniteMap
import qualified Prelude

  isJust :: Maybe a  ->  Bool
isJust Nothing False
isJust True



Lambda Reductions:
The following Lambda expression
\leftrightright

is transformed to
intersectFM0 left right = right

The following Lambda expression
\(mid_key1,_)→mid_key1

is transformed to
mid_key10 (mid_key1,_) = mid_key1

The following Lambda expression
\(_,mid_elt1)→mid_elt1

is transformed to
mid_elt10 (_,mid_elt1) = mid_elt1

The following Lambda expression
\(mid_key2,_)→mid_key2

is transformed to
mid_key20 (mid_key2,_) = mid_key2

The following Lambda expression
\(_,mid_elt2)→mid_elt2

is transformed to
mid_elt20 (_,mid_elt2) = mid_elt2

The following Lambda expression
\(Just elt1)→elt1

is transformed to
elt10 (Just elt1) = elt1

The following Lambda expression
\keyeltrest→(key,elt: rest

is transformed to
fmToList0 key elt rest = (key,elt: rest

The following Lambda expression
\oldnewnew

is transformed to
addToFM0 old new = new



↳ HASKELL
  ↳ LR
HASKELL
      ↳ CR

mainModule FiniteMap
  ((intersectFM :: Ord a => FiniteMap (Maybe a) b  ->  FiniteMap (Maybe a) b  ->  FiniteMap (Maybe a) b) :: Ord a => FiniteMap (Maybe a) b  ->  FiniteMap (Maybe a) b  ->  FiniteMap (Maybe a) b)

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap a b = EmptyFM  | Branch a b Int (FiniteMap a b) (FiniteMap a b


  instance (Eq a, Eq b) => Eq (FiniteMap b a) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  addToFM :: Ord a => FiniteMap a b  ->  a  ->  b  ->  FiniteMap a b
addToFM fm key elt addToFM_C addToFM0 fm key elt

  
addToFM0 old new new

  addToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a
addToFM_C combiner EmptyFM key elt unitFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt 
 | new_key < key = 
mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
 | new_key > key = 
mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
 | otherwise = 
Branch new_key (combiner elt new_elt) size fm_l fm_r

  deleteMax :: Ord a => FiniteMap a b  ->  FiniteMap a b
deleteMax (Branch key elt _ fm_l EmptyFMfm_l
deleteMax (Branch key elt _ fm_l fm_rmkBalBranch key elt fm_l (deleteMax fm_r)

  deleteMin :: Ord b => FiniteMap b a  ->  FiniteMap b a
deleteMin (Branch key elt _ EmptyFM fm_rfm_r
deleteMin (Branch key elt _ fm_l fm_rmkBalBranch key elt (deleteMin fm_l) fm_r

  emptyFM :: FiniteMap a b
emptyFM EmptyFM

  findMax :: FiniteMap b a  ->  (b,a)
findMax (Branch key elt _ _ EmptyFM(key,elt)
findMax (Branch key elt _ _ fm_rfindMax fm_r

  findMin :: FiniteMap b a  ->  (b,a)
findMin (Branch key elt _ EmptyFM _) (key,elt)
findMin (Branch key elt _ fm_l _) findMin fm_l

  fmToList :: FiniteMap a b  ->  [(a,b)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (b  ->  c  ->  a  ->  a ->  a  ->  FiniteMap b c  ->  a
foldFM k z EmptyFM z
foldFM k z (Branch key elt _ fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  glueBal :: Ord b => FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
glueBal EmptyFM fm2 fm2
glueBal fm1 EmptyFM fm1
glueBal fm1 fm2 
 | sizeFM fm2 > sizeFM fm1 = 
mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2)
 | otherwise = 
mkBalBranch mid_key1 mid_elt1 (deleteMax fm1) fm2 where 
mid_elt1 mid_elt10 vv2
mid_elt10 (_,mid_elt1mid_elt1
mid_elt2 mid_elt20 vv3
mid_elt20 (_,mid_elt2mid_elt2
mid_key1 mid_key10 vv2
mid_key10 (mid_key1,_) mid_key1
mid_key2 mid_key20 vv3
mid_key20 (mid_key2,_) mid_key2
vv2 findMax fm1
vv3 findMin fm2

  glueVBal :: Ord a => FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
glueVBal EmptyFM fm2 fm2
glueVBal fm1 EmptyFM fm1
glueVBal fm_l@(Branch key_l elt_l _ fm_ll fm_lrfm_r@(Branch key_r elt_r _ fm_rl fm_rr
 | sIZE_RATIO * size_l < size_r = 
mkBalBranch key_r elt_r (glueVBal fm_l fm_rl) fm_rr
 | sIZE_RATIO * size_r < size_l = 
mkBalBranch key_l elt_l fm_ll (glueVBal fm_lr fm_r)
 | otherwise = 
glueBal fm_l fm_r where 
size_l sizeFM fm_l
size_r sizeFM fm_r

  intersectFM :: Ord b => FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
intersectFM fm1 fm2 intersectFM_C intersectFM0 fm1 fm2

  
intersectFM0 left right right

  intersectFM_C :: Ord b => (a  ->  c  ->  d ->  FiniteMap b a  ->  FiniteMap b c  ->  FiniteMap b d
intersectFM_C combiner fm1 EmptyFM emptyFM
intersectFM_C combiner EmptyFM fm2 emptyFM
intersectFM_C combiner fm1 (Branch split_key elt2 _ left right
 | Maybe.isJust maybe_elt1 = 
mkVBalBranch split_key (combiner elt1 elt2) (intersectFM_C combiner lts left) (intersectFM_C combiner gts right)
 | otherwise = 
glueVBal (intersectFM_C combiner lts left) (intersectFM_C combiner gts right) where 
elt1 elt10 vv1
elt10 (Just elt1elt1
gts splitGT fm1 split_key
lts splitLT fm1 split_key
maybe_elt1 lookupFM fm1 split_key
vv1 maybe_elt1

  lookupFM :: Ord b => FiniteMap b a  ->  b  ->  Maybe a
lookupFM EmptyFM key Nothing
lookupFM (Branch key elt _ fm_l fm_rkey_to_find 
 | key_to_find < key = 
lookupFM fm_l key_to_find
 | key_to_find > key = 
lookupFM fm_r key_to_find
 | otherwise = 
Just elt

  mkBalBranch :: Ord a => a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkBalBranch key elt fm_L fm_R 
 | size_l + size_r < 2 = 
mkBranch 1 key elt fm_L fm_R
 | size_r > sIZE_RATIO * size_l = 
case fm_R of
  Branch _ _ _ fm_rl fm_rr
 | sizeFM fm_rl < 2 * sizeFM fm_rr -> 
single_L fm_L fm_R
 | otherwise -> 
double_L fm_L fm_R
 | size_l > sIZE_RATIO * size_r = 
case fm_L of
  Branch _ _ _ fm_ll fm_lr
 | sizeFM fm_lr < 2 * sizeFM fm_ll -> 
single_R fm_L fm_R
 | otherwise -> 
double_R fm_L fm_R
 | otherwise = 
mkBranch 2 key elt fm_L fm_R where 
double_L fm_l (Branch key_r elt_r _ (Branch key_rl elt_rl _ fm_rll fm_rlr) fm_rrmkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l _ fm_ll (Branch key_lr elt_lr _ fm_lrl fm_lrr)) fm_r mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
single_L fm_l (Branch key_r elt_r _ fm_rl fm_rrmkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr
single_R (Branch key_l elt_l _ fm_ll fm_lrfm_r mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l sizeFM fm_L
size_r sizeFM fm_R

  mkBranch :: Ord b => Int  ->  b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkBranch which key elt fm_l fm_r 
let 
result Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
in result
 where 
balance_ok True
left_ok 
case fm_l of
  EmptyFM-> True
  Branch left_key _ _ _ _-> 
let 
biggest_left_key fst (findMax fm_l)
in biggest_left_key < key
left_size sizeFM fm_l
right_ok 
case fm_r of
  EmptyFM-> True
  Branch right_key _ _ _ _-> 
let 
smallest_right_key fst (findMin fm_r)
in key < smallest_right_key
right_size sizeFM fm_r
unbox :: Int  ->  Int
unbox x x

  mkVBalBranch :: Ord a => a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkVBalBranch key elt EmptyFM fm_r addToFM fm_r key elt
mkVBalBranch key elt fm_l EmptyFM addToFM fm_l key elt
mkVBalBranch key elt fm_l@(Branch key_l elt_l _ fm_ll fm_lrfm_r@(Branch key_r elt_r _ fm_rl fm_rr
 | sIZE_RATIO * size_l < size_r = 
mkBalBranch key_r elt_r (mkVBalBranch key elt fm_l fm_rl) fm_rr
 | sIZE_RATIO * size_r < size_l = 
mkBalBranch key_l elt_l fm_ll (mkVBalBranch key elt fm_lr fm_r)
 | otherwise = 
mkBranch 13 key elt fm_l fm_r where 
size_l sizeFM fm_l
size_r sizeFM fm_r

  sIZE_RATIO :: Int
sIZE_RATIO 5

  sizeFM :: FiniteMap a b  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch _ _ size _ _) size

  splitGT :: Ord b => FiniteMap b a  ->  b  ->  FiniteMap b a
splitGT EmptyFM split_key emptyFM
splitGT (Branch key elt _ fm_l fm_rsplit_key 
 | split_key > key = 
splitGT fm_r split_key
 | split_key < key = 
mkVBalBranch key elt (splitGT fm_l split_key) fm_r
 | otherwise = 
fm_r

  splitLT :: Ord a => FiniteMap a b  ->  a  ->  FiniteMap a b
splitLT EmptyFM split_key emptyFM
splitLT (Branch key elt _ fm_l fm_rsplit_key 
 | split_key < key = 
splitLT fm_l split_key
 | split_key > key = 
mkVBalBranch key elt fm_l (splitLT fm_r split_key)
 | otherwise = 
fm_l

  unitFM :: a  ->  b  ->  FiniteMap a b
unitFM key elt Branch key elt 1 emptyFM emptyFM


module Maybe where
  import qualified FiniteMap
import qualified Prelude

  isJust :: Maybe a  ->  Bool
isJust Nothing False
isJust True



Case Reductions:
The following Case expression
case fm_R of
 Branch _ _ _ fm_rl fm_rr
 | sizeFM fm_rl < 2 * sizeFM fm_rr
 → single_L fm_L fm_R
 | otherwise
 → double_L fm_L fm_R

is transformed to
mkBalBranch0 fm_L fm_R (Branch _ _ _ fm_rl fm_rr)
 | sizeFM fm_rl < 2 * sizeFM fm_rr
 = single_L fm_L fm_R
 | otherwise
 = double_L fm_L fm_R

The following Case expression
case fm_L of
 Branch _ _ _ fm_ll fm_lr
 | sizeFM fm_lr < 2 * sizeFM fm_ll
 → single_R fm_L fm_R
 | otherwise
 → double_R fm_L fm_R

is transformed to
mkBalBranch1 fm_L fm_R (Branch _ _ _ fm_ll fm_lr)
 | sizeFM fm_lr < 2 * sizeFM fm_ll
 = single_R fm_L fm_R
 | otherwise
 = double_R fm_L fm_R

The following Case expression
case fm_l of
 EmptyFM → True
 Branch left_key _ _ _ _ → 
let 
biggest_left_key  = fst (findMax fm_l)
in biggest_left_key < key

is transformed to
left_ok0 fm_l key EmptyFM = True
left_ok0 fm_l key (Branch left_key _ _ _ _) = 
let 
biggest_left_key  = fst (findMax fm_l)
in biggest_left_key < key

The following Case expression
case fm_r of
 EmptyFM → True
 Branch right_key _ _ _ _ → 
let 
smallest_right_key  = fst (findMin fm_r)
in key < smallest_right_key

is transformed to
right_ok0 fm_r key EmptyFM = True
right_ok0 fm_r key (Branch right_key _ _ _ _) = 
let 
smallest_right_key  = fst (findMin fm_r)
in key < smallest_right_key

The following Case expression
case compare x y of
 EQ → o
 LT → LT
 GT → GT

is transformed to
primCompAux0 o EQ = o
primCompAux0 o LT = LT
primCompAux0 o GT = GT



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
HASKELL
          ↳ IFR

mainModule FiniteMap
  ((intersectFM :: Ord b => FiniteMap (Maybe b) a  ->  FiniteMap (Maybe b) a  ->  FiniteMap (Maybe b) a) :: Ord b => FiniteMap (Maybe b) a  ->  FiniteMap (Maybe b) a  ->  FiniteMap (Maybe b) a)

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap a b = EmptyFM  | Branch a b Int (FiniteMap a b) (FiniteMap a b


  instance (Eq a, Eq b) => Eq (FiniteMap a b) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  addToFM :: Ord a => FiniteMap a b  ->  a  ->  b  ->  FiniteMap a b
addToFM fm key elt addToFM_C addToFM0 fm key elt

  
addToFM0 old new new

  addToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a
addToFM_C combiner EmptyFM key elt unitFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt 
 | new_key < key = 
mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
 | new_key > key = 
mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
 | otherwise = 
Branch new_key (combiner elt new_elt) size fm_l fm_r

  deleteMax :: Ord b => FiniteMap b a  ->  FiniteMap b a
deleteMax (Branch key elt _ fm_l EmptyFMfm_l
deleteMax (Branch key elt _ fm_l fm_rmkBalBranch key elt fm_l (deleteMax fm_r)

  deleteMin :: Ord a => FiniteMap a b  ->  FiniteMap a b
deleteMin (Branch key elt _ EmptyFM fm_rfm_r
deleteMin (Branch key elt _ fm_l fm_rmkBalBranch key elt (deleteMin fm_l) fm_r

  emptyFM :: FiniteMap b a
emptyFM EmptyFM

  findMax :: FiniteMap b a  ->  (b,a)
findMax (Branch key elt _ _ EmptyFM(key,elt)
findMax (Branch key elt _ _ fm_rfindMax fm_r

  findMin :: FiniteMap b a  ->  (b,a)
findMin (Branch key elt _ EmptyFM _) (key,elt)
findMin (Branch key elt _ fm_l _) findMin fm_l

  fmToList :: FiniteMap a b  ->  [(a,b)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (a  ->  c  ->  b  ->  b ->  b  ->  FiniteMap a c  ->  b
foldFM k z EmptyFM z
foldFM k z (Branch key elt _ fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  glueBal :: Ord b => FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
glueBal EmptyFM fm2 fm2
glueBal fm1 EmptyFM fm1
glueBal fm1 fm2 
 | sizeFM fm2 > sizeFM fm1 = 
mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2)
 | otherwise = 
mkBalBranch mid_key1 mid_elt1 (deleteMax fm1) fm2 where 
mid_elt1 mid_elt10 vv2
mid_elt10 (_,mid_elt1mid_elt1
mid_elt2 mid_elt20 vv3
mid_elt20 (_,mid_elt2mid_elt2
mid_key1 mid_key10 vv2
mid_key10 (mid_key1,_) mid_key1
mid_key2 mid_key20 vv3
mid_key20 (mid_key2,_) mid_key2
vv2 findMax fm1
vv3 findMin fm2

  glueVBal :: Ord a => FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
glueVBal EmptyFM fm2 fm2
glueVBal fm1 EmptyFM fm1
glueVBal fm_l@(Branch key_l elt_l _ fm_ll fm_lrfm_r@(Branch key_r elt_r _ fm_rl fm_rr
 | sIZE_RATIO * size_l < size_r = 
mkBalBranch key_r elt_r (glueVBal fm_l fm_rl) fm_rr
 | sIZE_RATIO * size_r < size_l = 
mkBalBranch key_l elt_l fm_ll (glueVBal fm_lr fm_r)
 | otherwise = 
glueBal fm_l fm_r where 
size_l sizeFM fm_l
size_r sizeFM fm_r

  intersectFM :: Ord a => FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
intersectFM fm1 fm2 intersectFM_C intersectFM0 fm1 fm2

  
intersectFM0 left right right

  intersectFM_C :: Ord b => (d  ->  a  ->  c ->  FiniteMap b d  ->  FiniteMap b a  ->  FiniteMap b c
intersectFM_C combiner fm1 EmptyFM emptyFM
intersectFM_C combiner EmptyFM fm2 emptyFM
intersectFM_C combiner fm1 (Branch split_key elt2 _ left right
 | Maybe.isJust maybe_elt1 = 
mkVBalBranch split_key (combiner elt1 elt2) (intersectFM_C combiner lts left) (intersectFM_C combiner gts right)
 | otherwise = 
glueVBal (intersectFM_C combiner lts left) (intersectFM_C combiner gts right) where 
elt1 elt10 vv1
elt10 (Just elt1elt1
gts splitGT fm1 split_key
lts splitLT fm1 split_key
maybe_elt1 lookupFM fm1 split_key
vv1 maybe_elt1

  lookupFM :: Ord b => FiniteMap b a  ->  b  ->  Maybe a
lookupFM EmptyFM key Nothing
lookupFM (Branch key elt _ fm_l fm_rkey_to_find 
 | key_to_find < key = 
lookupFM fm_l key_to_find
 | key_to_find > key = 
lookupFM fm_r key_to_find
 | otherwise = 
Just elt

  mkBalBranch :: Ord b => b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkBalBranch key elt fm_L fm_R 
 | size_l + size_r < 2 = 
mkBranch 1 key elt fm_L fm_R
 | size_r > sIZE_RATIO * size_l = 
mkBalBranch0 fm_L fm_R fm_R
 | size_l > sIZE_RATIO * size_r = 
mkBalBranch1 fm_L fm_R fm_L
 | otherwise = 
mkBranch 2 key elt fm_L fm_R where 
double_L fm_l (Branch key_r elt_r _ (Branch key_rl elt_rl _ fm_rll fm_rlr) fm_rrmkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l _ fm_ll (Branch key_lr elt_lr _ fm_lrl fm_lrr)) fm_r mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
mkBalBranch0 fm_L fm_R (Branch _ _ _ fm_rl fm_rr
 | sizeFM fm_rl < 2 * sizeFM fm_rr = 
single_L fm_L fm_R
 | otherwise = 
double_L fm_L fm_R
mkBalBranch1 fm_L fm_R (Branch _ _ _ fm_ll fm_lr
 | sizeFM fm_lr < 2 * sizeFM fm_ll = 
single_R fm_L fm_R
 | otherwise = 
double_R fm_L fm_R
single_L fm_l (Branch key_r elt_r _ fm_rl fm_rrmkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr
single_R (Branch key_l elt_l _ fm_ll fm_lrfm_r mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l sizeFM fm_L
size_r sizeFM fm_R

  mkBranch :: Ord b => Int  ->  b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkBranch which key elt fm_l fm_r 
let 
result Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
in result
 where 
balance_ok True
left_ok left_ok0 fm_l key fm_l
left_ok0 fm_l key EmptyFM True
left_ok0 fm_l key (Branch left_key _ _ _ _) 
let 
biggest_left_key fst (findMax fm_l)
in biggest_left_key < key
left_size sizeFM fm_l
right_ok right_ok0 fm_r key fm_r
right_ok0 fm_r key EmptyFM True
right_ok0 fm_r key (Branch right_key _ _ _ _) 
let 
smallest_right_key fst (findMin fm_r)
in key < smallest_right_key
right_size sizeFM fm_r
unbox :: Int  ->  Int
unbox x x

  mkVBalBranch :: Ord b => b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkVBalBranch key elt EmptyFM fm_r addToFM fm_r key elt
mkVBalBranch key elt fm_l EmptyFM addToFM fm_l key elt
mkVBalBranch key elt fm_l@(Branch key_l elt_l _ fm_ll fm_lrfm_r@(Branch key_r elt_r _ fm_rl fm_rr
 | sIZE_RATIO * size_l < size_r = 
mkBalBranch key_r elt_r (mkVBalBranch key elt fm_l fm_rl) fm_rr
 | sIZE_RATIO * size_r < size_l = 
mkBalBranch key_l elt_l fm_ll (mkVBalBranch key elt fm_lr fm_r)
 | otherwise = 
mkBranch 13 key elt fm_l fm_r where 
size_l sizeFM fm_l
size_r sizeFM fm_r

  sIZE_RATIO :: Int
sIZE_RATIO 5

  sizeFM :: FiniteMap a b  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch _ _ size _ _) size

  splitGT :: Ord a => FiniteMap a b  ->  a  ->  FiniteMap a b
splitGT EmptyFM split_key emptyFM
splitGT (Branch key elt _ fm_l fm_rsplit_key 
 | split_key > key = 
splitGT fm_r split_key
 | split_key < key = 
mkVBalBranch key elt (splitGT fm_l split_key) fm_r
 | otherwise = 
fm_r

  splitLT :: Ord b => FiniteMap b a  ->  b  ->  FiniteMap b a
splitLT EmptyFM split_key emptyFM
splitLT (Branch key elt _ fm_l fm_rsplit_key 
 | split_key < key = 
splitLT fm_l split_key
 | split_key > key = 
mkVBalBranch key elt fm_l (splitLT fm_r split_key)
 | otherwise = 
fm_l

  unitFM :: a  ->  b  ->  FiniteMap a b
unitFM key elt Branch key elt 1 emptyFM emptyFM


module Maybe where
  import qualified FiniteMap
import qualified Prelude

  isJust :: Maybe a  ->  Bool
isJust Nothing False
isJust True



If Reductions:
The following If expression
if primGEqNatS x y then Succ (primDivNatS (primMinusNatS x y) (Succ y)) else Zero

is transformed to
primDivNatS0 x y True = Succ (primDivNatS (primMinusNatS x y) (Succ y))
primDivNatS0 x y False = Zero

The following If expression
if primGEqNatS x y then primModNatS (primMinusNatS x y) (Succ y) else Succ x

is transformed to
primModNatS0 x y True = primModNatS (primMinusNatS x y) (Succ y)
primModNatS0 x y False = Succ x



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
HASKELL
              ↳ BR

mainModule FiniteMap
  ((intersectFM :: Ord b => FiniteMap (Maybe b) a  ->  FiniteMap (Maybe b) a  ->  FiniteMap (Maybe b) a) :: Ord b => FiniteMap (Maybe b) a  ->  FiniteMap (Maybe b) a  ->  FiniteMap (Maybe b) a)

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap b a = EmptyFM  | Branch b a Int (FiniteMap b a) (FiniteMap b a


  instance (Eq a, Eq b) => Eq (FiniteMap a b) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  addToFM :: Ord a => FiniteMap a b  ->  a  ->  b  ->  FiniteMap a b
addToFM fm key elt addToFM_C addToFM0 fm key elt

  
addToFM0 old new new

  addToFM_C :: Ord a => (b  ->  b  ->  b ->  FiniteMap a b  ->  a  ->  b  ->  FiniteMap a b
addToFM_C combiner EmptyFM key elt unitFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt 
 | new_key < key = 
mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
 | new_key > key = 
mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
 | otherwise = 
Branch new_key (combiner elt new_elt) size fm_l fm_r

  deleteMax :: Ord b => FiniteMap b a  ->  FiniteMap b a
deleteMax (Branch key elt _ fm_l EmptyFMfm_l
deleteMax (Branch key elt _ fm_l fm_rmkBalBranch key elt fm_l (deleteMax fm_r)

  deleteMin :: Ord b => FiniteMap b a  ->  FiniteMap b a
deleteMin (Branch key elt _ EmptyFM fm_rfm_r
deleteMin (Branch key elt _ fm_l fm_rmkBalBranch key elt (deleteMin fm_l) fm_r

  emptyFM :: FiniteMap b a
emptyFM EmptyFM

  findMax :: FiniteMap b a  ->  (b,a)
findMax (Branch key elt _ _ EmptyFM(key,elt)
findMax (Branch key elt _ _ fm_rfindMax fm_r

  findMin :: FiniteMap a b  ->  (a,b)
findMin (Branch key elt _ EmptyFM _) (key,elt)
findMin (Branch key elt _ fm_l _) findMin fm_l

  fmToList :: FiniteMap a b  ->  [(a,b)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (b  ->  a  ->  c  ->  c ->  c  ->  FiniteMap b a  ->  c
foldFM k z EmptyFM z
foldFM k z (Branch key elt _ fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  glueBal :: Ord a => FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
glueBal EmptyFM fm2 fm2
glueBal fm1 EmptyFM fm1
glueBal fm1 fm2 
 | sizeFM fm2 > sizeFM fm1 = 
mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2)
 | otherwise = 
mkBalBranch mid_key1 mid_elt1 (deleteMax fm1) fm2 where 
mid_elt1 mid_elt10 vv2
mid_elt10 (_,mid_elt1mid_elt1
mid_elt2 mid_elt20 vv3
mid_elt20 (_,mid_elt2mid_elt2
mid_key1 mid_key10 vv2
mid_key10 (mid_key1,_) mid_key1
mid_key2 mid_key20 vv3
mid_key20 (mid_key2,_) mid_key2
vv2 findMax fm1
vv3 findMin fm2

  glueVBal :: Ord b => FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
glueVBal EmptyFM fm2 fm2
glueVBal fm1 EmptyFM fm1
glueVBal fm_l@(Branch key_l elt_l _ fm_ll fm_lrfm_r@(Branch key_r elt_r _ fm_rl fm_rr
 | sIZE_RATIO * size_l < size_r = 
mkBalBranch key_r elt_r (glueVBal fm_l fm_rl) fm_rr
 | sIZE_RATIO * size_r < size_l = 
mkBalBranch key_l elt_l fm_ll (glueVBal fm_lr fm_r)
 | otherwise = 
glueBal fm_l fm_r where 
size_l sizeFM fm_l
size_r sizeFM fm_r

  intersectFM :: Ord a => FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
intersectFM fm1 fm2 intersectFM_C intersectFM0 fm1 fm2

  
intersectFM0 left right right

  intersectFM_C :: Ord b => (d  ->  a  ->  c ->  FiniteMap b d  ->  FiniteMap b a  ->  FiniteMap b c
intersectFM_C combiner fm1 EmptyFM emptyFM
intersectFM_C combiner EmptyFM fm2 emptyFM
intersectFM_C combiner fm1 (Branch split_key elt2 _ left right
 | Maybe.isJust maybe_elt1 = 
mkVBalBranch split_key (combiner elt1 elt2) (intersectFM_C combiner lts left) (intersectFM_C combiner gts right)
 | otherwise = 
glueVBal (intersectFM_C combiner lts left) (intersectFM_C combiner gts right) where 
elt1 elt10 vv1
elt10 (Just elt1elt1
gts splitGT fm1 split_key
lts splitLT fm1 split_key
maybe_elt1 lookupFM fm1 split_key
vv1 maybe_elt1

  lookupFM :: Ord a => FiniteMap a b  ->  a  ->  Maybe b
lookupFM EmptyFM key Nothing
lookupFM (Branch key elt _ fm_l fm_rkey_to_find 
 | key_to_find < key = 
lookupFM fm_l key_to_find
 | key_to_find > key = 
lookupFM fm_r key_to_find
 | otherwise = 
Just elt

  mkBalBranch :: Ord a => a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkBalBranch key elt fm_L fm_R 
 | size_l + size_r < 2 = 
mkBranch 1 key elt fm_L fm_R
 | size_r > sIZE_RATIO * size_l = 
mkBalBranch0 fm_L fm_R fm_R
 | size_l > sIZE_RATIO * size_r = 
mkBalBranch1 fm_L fm_R fm_L
 | otherwise = 
mkBranch 2 key elt fm_L fm_R where 
double_L fm_l (Branch key_r elt_r _ (Branch key_rl elt_rl _ fm_rll fm_rlr) fm_rrmkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l _ fm_ll (Branch key_lr elt_lr _ fm_lrl fm_lrr)) fm_r mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
mkBalBranch0 fm_L fm_R (Branch _ _ _ fm_rl fm_rr
 | sizeFM fm_rl < 2 * sizeFM fm_rr = 
single_L fm_L fm_R
 | otherwise = 
double_L fm_L fm_R
mkBalBranch1 fm_L fm_R (Branch _ _ _ fm_ll fm_lr
 | sizeFM fm_lr < 2 * sizeFM fm_ll = 
single_R fm_L fm_R
 | otherwise = 
double_R fm_L fm_R
single_L fm_l (Branch key_r elt_r _ fm_rl fm_rrmkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr
single_R (Branch key_l elt_l _ fm_ll fm_lrfm_r mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l sizeFM fm_L
size_r sizeFM fm_R

  mkBranch :: Ord a => Int  ->  a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkBranch which key elt fm_l fm_r 
let 
result Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
in result
 where 
balance_ok True
left_ok left_ok0 fm_l key fm_l
left_ok0 fm_l key EmptyFM True
left_ok0 fm_l key (Branch left_key _ _ _ _) 
let 
biggest_left_key fst (findMax fm_l)
in biggest_left_key < key
left_size sizeFM fm_l
right_ok right_ok0 fm_r key fm_r
right_ok0 fm_r key EmptyFM True
right_ok0 fm_r key (Branch right_key _ _ _ _) 
let 
smallest_right_key fst (findMin fm_r)
in key < smallest_right_key
right_size sizeFM fm_r
unbox :: Int  ->  Int
unbox x x

  mkVBalBranch :: Ord a => a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkVBalBranch key elt EmptyFM fm_r addToFM fm_r key elt
mkVBalBranch key elt fm_l EmptyFM addToFM fm_l key elt
mkVBalBranch key elt fm_l@(Branch key_l elt_l _ fm_ll fm_lrfm_r@(Branch key_r elt_r _ fm_rl fm_rr
 | sIZE_RATIO * size_l < size_r = 
mkBalBranch key_r elt_r (mkVBalBranch key elt fm_l fm_rl) fm_rr
 | sIZE_RATIO * size_r < size_l = 
mkBalBranch key_l elt_l fm_ll (mkVBalBranch key elt fm_lr fm_r)
 | otherwise = 
mkBranch 13 key elt fm_l fm_r where 
size_l sizeFM fm_l
size_r sizeFM fm_r

  sIZE_RATIO :: Int
sIZE_RATIO 5

  sizeFM :: FiniteMap b a  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch _ _ size _ _) size

  splitGT :: Ord b => FiniteMap b a  ->  b  ->  FiniteMap b a
splitGT EmptyFM split_key emptyFM
splitGT (Branch key elt _ fm_l fm_rsplit_key 
 | split_key > key = 
splitGT fm_r split_key
 | split_key < key = 
mkVBalBranch key elt (splitGT fm_l split_key) fm_r
 | otherwise = 
fm_r

  splitLT :: Ord a => FiniteMap a b  ->  a  ->  FiniteMap a b
splitLT EmptyFM split_key emptyFM
splitLT (Branch key elt _ fm_l fm_rsplit_key 
 | split_key < key = 
splitLT fm_l split_key
 | split_key > key = 
mkVBalBranch key elt fm_l (splitLT fm_r split_key)
 | otherwise = 
fm_l

  unitFM :: b  ->  a  ->  FiniteMap b a
unitFM key elt Branch key elt 1 emptyFM emptyFM


module Maybe where
  import qualified FiniteMap
import qualified Prelude

  isJust :: Maybe a  ->  Bool
isJust Nothing False
isJust True



Replaced joker patterns by fresh variables and removed binding patterns.
Binding Reductions:
The bind variable of the following binding Pattern
fm_l@(Branch vy vz wu wv ww)

is replaced by the following term
Branch vy vz wu wv ww

The bind variable of the following binding Pattern
fm_r@(Branch wy wz xu xv xw)

is replaced by the following term
Branch wy wz xu xv xw

The bind variable of the following binding Pattern
fm_l@(Branch vxz vyu vyv vyw vyx)

is replaced by the following term
Branch vxz vyu vyv vyw vyx

The bind variable of the following binding Pattern
fm_r@(Branch vyz vzu vzv vzw vzx)

is replaced by the following term
Branch vyz vzu vzv vzw vzx



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
HASKELL
                  ↳ COR

mainModule FiniteMap
  ((intersectFM :: Ord a => FiniteMap (Maybe a) b  ->  FiniteMap (Maybe a) b  ->  FiniteMap (Maybe a) b) :: Ord a => FiniteMap (Maybe a) b  ->  FiniteMap (Maybe a) b  ->  FiniteMap (Maybe a) b)

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap b a = EmptyFM  | Branch b a Int (FiniteMap b a) (FiniteMap b a


  instance (Eq a, Eq b) => Eq (FiniteMap b a) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  addToFM :: Ord b => FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a
addToFM fm key elt addToFM_C addToFM0 fm key elt

  
addToFM0 old new new

  addToFM_C :: Ord a => (b  ->  b  ->  b ->  FiniteMap a b  ->  a  ->  b  ->  FiniteMap a b
addToFM_C combiner EmptyFM key elt unitFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt 
 | new_key < key = 
mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
 | new_key > key = 
mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
 | otherwise = 
Branch new_key (combiner elt new_elt) size fm_l fm_r

  deleteMax :: Ord b => FiniteMap b a  ->  FiniteMap b a
deleteMax (Branch key elt vxw fm_l EmptyFMfm_l
deleteMax (Branch key elt vxx fm_l fm_rmkBalBranch key elt fm_l (deleteMax fm_r)

  deleteMin :: Ord a => FiniteMap a b  ->  FiniteMap a b
deleteMin (Branch key elt wux EmptyFM fm_rfm_r
deleteMin (Branch key elt wuy fm_l fm_rmkBalBranch key elt (deleteMin fm_l) fm_r

  emptyFM :: FiniteMap b a
emptyFM EmptyFM

  findMax :: FiniteMap a b  ->  (a,b)
findMax (Branch key elt vzy vzz EmptyFM(key,elt)
findMax (Branch key elt wuu wuv fm_rfindMax fm_r

  findMin :: FiniteMap a b  ->  (a,b)
findMin (Branch key elt vwu EmptyFM vwv(key,elt)
findMin (Branch key elt vww fm_l vwxfindMin fm_l

  fmToList :: FiniteMap a b  ->  [(a,b)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (b  ->  c  ->  a  ->  a ->  a  ->  FiniteMap b c  ->  a
foldFM k z EmptyFM z
foldFM k z (Branch key elt vvy fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  glueBal :: Ord a => FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
glueBal EmptyFM fm2 fm2
glueBal fm1 EmptyFM fm1
glueBal fm1 fm2 
 | sizeFM fm2 > sizeFM fm1 = 
mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2)
 | otherwise = 
mkBalBranch mid_key1 mid_elt1 (deleteMax fm1) fm2 where 
mid_elt1 mid_elt10 vv2
mid_elt10 (zx,mid_elt1mid_elt1
mid_elt2 mid_elt20 vv3
mid_elt20 (zy,mid_elt2mid_elt2
mid_key1 mid_key10 vv2
mid_key10 (mid_key1,zzmid_key1
mid_key2 mid_key20 vv3
mid_key20 (mid_key2,vuumid_key2
vv2 findMax fm1
vv3 findMin fm2

  glueVBal :: Ord a => FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
glueVBal EmptyFM fm2 fm2
glueVBal fm1 EmptyFM fm1
glueVBal (Branch vy vz wu wv ww) (Branch wy wz xu xv xw
 | sIZE_RATIO * size_l < size_r = 
mkBalBranch wy wz (glueVBal (Branch vy vz wu wv ww) xv) xw
 | sIZE_RATIO * size_r < size_l = 
mkBalBranch vy vz wv (glueVBal ww (Branch wy wz xu xv xw))
 | otherwise = 
glueBal (Branch vy vz wu wv ww) (Branch wy wz xu xv xw) where 
size_l sizeFM (Branch vy vz wu wv ww)
size_r sizeFM (Branch wy wz xu xv xw)

  intersectFM :: Ord a => FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
intersectFM fm1 fm2 intersectFM_C intersectFM0 fm1 fm2

  
intersectFM0 left right right

  intersectFM_C :: Ord a => (b  ->  d  ->  c ->  FiniteMap a b  ->  FiniteMap a d  ->  FiniteMap a c
intersectFM_C combiner fm1 EmptyFM emptyFM
intersectFM_C combiner EmptyFM fm2 emptyFM
intersectFM_C combiner fm1 (Branch split_key elt2 vuv left right
 | Maybe.isJust maybe_elt1 = 
mkVBalBranch split_key (combiner elt1 elt2) (intersectFM_C combiner lts left) (intersectFM_C combiner gts right)
 | otherwise = 
glueVBal (intersectFM_C combiner lts left) (intersectFM_C combiner gts right) where 
elt1 elt10 vv1
elt10 (Just elt1elt1
gts splitGT fm1 split_key
lts splitLT fm1 split_key
maybe_elt1 lookupFM fm1 split_key
vv1 maybe_elt1

  lookupFM :: Ord b => FiniteMap b a  ->  b  ->  Maybe a
lookupFM EmptyFM key Nothing
lookupFM (Branch key elt wuw fm_l fm_rkey_to_find 
 | key_to_find < key = 
lookupFM fm_l key_to_find
 | key_to_find > key = 
lookupFM fm_r key_to_find
 | otherwise = 
Just elt

  mkBalBranch :: Ord b => b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkBalBranch key elt fm_L fm_R 
 | size_l + size_r < 2 = 
mkBranch 1 key elt fm_L fm_R
 | size_r > sIZE_RATIO * size_l = 
mkBalBranch0 fm_L fm_R fm_R
 | size_l > sIZE_RATIO * size_r = 
mkBalBranch1 fm_L fm_R fm_L
 | otherwise = 
mkBranch 2 key elt fm_L fm_R where 
double_L fm_l (Branch key_r elt_r yx (Branch key_rl elt_rl yy fm_rll fm_rlr) fm_rrmkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l xy fm_ll (Branch key_lr elt_lr xz fm_lrl fm_lrr)) fm_r mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
mkBalBranch0 fm_L fm_R (Branch yz zu zv fm_rl fm_rr
 | sizeFM fm_rl < 2 * sizeFM fm_rr = 
single_L fm_L fm_R
 | otherwise = 
double_L fm_L fm_R
mkBalBranch1 fm_L fm_R (Branch yu yv yw fm_ll fm_lr
 | sizeFM fm_lr < 2 * sizeFM fm_ll = 
single_R fm_L fm_R
 | otherwise = 
double_R fm_L fm_R
single_L fm_l (Branch key_r elt_r zw fm_rl fm_rrmkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr
single_R (Branch key_l elt_l xx fm_ll fm_lrfm_r mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l sizeFM fm_L
size_r sizeFM fm_R

  mkBranch :: Ord a => Int  ->  a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkBranch which key elt fm_l fm_r 
let 
result Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
in result
 where 
balance_ok True
left_ok left_ok0 fm_l key fm_l
left_ok0 fm_l key EmptyFM True
left_ok0 fm_l key (Branch left_key vuw vux vuy vuz
let 
biggest_left_key fst (findMax fm_l)
in biggest_left_key < key
left_size sizeFM fm_l
right_ok right_ok0 fm_r key fm_r
right_ok0 fm_r key EmptyFM True
right_ok0 fm_r key (Branch right_key vvu vvv vvw vvx
let 
smallest_right_key fst (findMin fm_r)
in key < smallest_right_key
right_size sizeFM fm_r
unbox :: Int  ->  Int
unbox x x

  mkVBalBranch :: Ord b => b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkVBalBranch key elt EmptyFM fm_r addToFM fm_r key elt
mkVBalBranch key elt fm_l EmptyFM addToFM fm_l key elt
mkVBalBranch key elt (Branch vxz vyu vyv vyw vyx) (Branch vyz vzu vzv vzw vzx
 | sIZE_RATIO * size_l < size_r = 
mkBalBranch vyz vzu (mkVBalBranch key elt (Branch vxz vyu vyv vyw vyx) vzw) vzx
 | sIZE_RATIO * size_r < size_l = 
mkBalBranch vxz vyu vyw (mkVBalBranch key elt vyx (Branch vyz vzu vzv vzw vzx))
 | otherwise = 
mkBranch 13 key elt (Branch vxz vyu vyv vyw vyx) (Branch vyz vzu vzv vzw vzx) where 
size_l sizeFM (Branch vxz vyu vyv vyw vyx)
size_r sizeFM (Branch vyz vzu vzv vzw vzx)

  sIZE_RATIO :: Int
sIZE_RATIO 5

  sizeFM :: FiniteMap b a  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch vwy vwz size vxu vxvsize

  splitGT :: Ord a => FiniteMap a b  ->  a  ->  FiniteMap a b
splitGT EmptyFM split_key emptyFM
splitGT (Branch key elt vw fm_l fm_rsplit_key 
 | split_key > key = 
splitGT fm_r split_key
 | split_key < key = 
mkVBalBranch key elt (splitGT fm_l split_key) fm_r
 | otherwise = 
fm_r

  splitLT :: Ord b => FiniteMap b a  ->  b  ->  FiniteMap b a
splitLT EmptyFM split_key emptyFM
splitLT (Branch key elt vvz fm_l fm_rsplit_key 
 | split_key < key = 
splitLT fm_l split_key
 | split_key > key = 
mkVBalBranch key elt fm_l (splitLT fm_r split_key)
 | otherwise = 
fm_l

  unitFM :: b  ->  a  ->  FiniteMap b a
unitFM key elt Branch key elt 1 emptyFM emptyFM


module Maybe where
  import qualified FiniteMap
import qualified Prelude

  isJust :: Maybe a  ->  Bool
isJust Nothing False
isJust wuz True



Cond Reductions:
The following Function with conditions
splitGT EmptyFM split_key = emptyFM
splitGT (Branch key elt vw fm_l fm_rsplit_key
 | split_key > key
 = splitGT fm_r split_key
 | split_key < key
 = mkVBalBranch key elt (splitGT fm_l split_keyfm_r
 | otherwise
 = fm_r

is transformed to
splitGT EmptyFM split_key = splitGT4 EmptyFM split_key
splitGT (Branch key elt vw fm_l fm_rsplit_key = splitGT3 (Branch key elt vw fm_l fm_rsplit_key

splitGT1 key elt vw fm_l fm_r split_key True = mkVBalBranch key elt (splitGT fm_l split_keyfm_r
splitGT1 key elt vw fm_l fm_r split_key False = splitGT0 key elt vw fm_l fm_r split_key otherwise

splitGT0 key elt vw fm_l fm_r split_key True = fm_r

splitGT2 key elt vw fm_l fm_r split_key True = splitGT fm_r split_key
splitGT2 key elt vw fm_l fm_r split_key False = splitGT1 key elt vw fm_l fm_r split_key (split_key < key)

splitGT3 (Branch key elt vw fm_l fm_rsplit_key = splitGT2 key elt vw fm_l fm_r split_key (split_key > key)

splitGT4 EmptyFM split_key = emptyFM
splitGT4 wzz xuu = splitGT3 wzz xuu

The following Function with conditions
glueVBal EmptyFM fm2 = fm2
glueVBal fm1 EmptyFM = fm1
glueVBal (Branch vy vz wu wv ww) (Branch wy wz xu xv xw)
 | sIZE_RATIO * size_l < size_r
 = mkBalBranch wy wz (glueVBal (Branch vy vz wu wv wwxvxw
 | sIZE_RATIO * size_r < size_l
 = mkBalBranch vy vz wv (glueVBal ww (Branch wy wz xu xv xw))
 | otherwise
 = glueBal (Branch vy vz wu wv ww) (Branch wy wz xu xv xw)
where 
size_l  = sizeFM (Branch vy vz wu wv ww)
size_r  = sizeFM (Branch wy wz xu xv xw)

is transformed to
glueVBal EmptyFM fm2 = glueVBal5 EmptyFM fm2
glueVBal fm1 EmptyFM = glueVBal4 fm1 EmptyFM
glueVBal (Branch vy vz wu wv ww) (Branch wy wz xu xv xw) = glueVBal3 (Branch vy vz wu wv ww) (Branch wy wz xu xv xw)

glueVBal3 (Branch vy vz wu wv ww) (Branch wy wz xu xv xw) = 
glueVBal2 vy vz wu wv ww wy wz xu xv xw (sIZE_RATIO * size_l < size_r)
where 
glueVBal0 vy vz wu wv ww wy wz xu xv xw True = glueBal (Branch vy vz wu wv ww) (Branch wy wz xu xv xw)
glueVBal1 vy vz wu wv ww wy wz xu xv xw True = mkBalBranch vy vz wv (glueVBal ww (Branch wy wz xu xv xw))
glueVBal1 vy vz wu wv ww wy wz xu xv xw False = glueVBal0 vy vz wu wv ww wy wz xu xv xw otherwise
glueVBal2 vy vz wu wv ww wy wz xu xv xw True = mkBalBranch wy wz (glueVBal (Branch vy vz wu wv wwxvxw
glueVBal2 vy vz wu wv ww wy wz xu xv xw False = glueVBal1 vy vz wu wv ww wy wz xu xv xw (sIZE_RATIO * size_r < size_l)
size_l  = sizeFM (Branch vy vz wu wv ww)
size_r  = sizeFM (Branch wy wz xu xv xw)

glueVBal4 fm1 EmptyFM = fm1
glueVBal4 xuy xuz = glueVBal3 xuy xuz

glueVBal5 EmptyFM fm2 = fm2
glueVBal5 xvv xvw = glueVBal4 xvv xvw

The following Function with conditions
mkBalBranch1 fm_L fm_R (Branch yu yv yw fm_ll fm_lr)
 | sizeFM fm_lr < 2 * sizeFM fm_ll
 = single_R fm_L fm_R
 | otherwise
 = double_R fm_L fm_R

is transformed to
mkBalBranch1 fm_L fm_R (Branch yu yv yw fm_ll fm_lr) = mkBalBranch12 fm_L fm_R (Branch yu yv yw fm_ll fm_lr)

mkBalBranch11 fm_L fm_R yu yv yw fm_ll fm_lr True = single_R fm_L fm_R
mkBalBranch11 fm_L fm_R yu yv yw fm_ll fm_lr False = mkBalBranch10 fm_L fm_R yu yv yw fm_ll fm_lr otherwise

mkBalBranch10 fm_L fm_R yu yv yw fm_ll fm_lr True = double_R fm_L fm_R

mkBalBranch12 fm_L fm_R (Branch yu yv yw fm_ll fm_lr) = mkBalBranch11 fm_L fm_R yu yv yw fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll)

The following Function with conditions
mkBalBranch0 fm_L fm_R (Branch yz zu zv fm_rl fm_rr)
 | sizeFM fm_rl < 2 * sizeFM fm_rr
 = single_L fm_L fm_R
 | otherwise
 = double_L fm_L fm_R

is transformed to
mkBalBranch0 fm_L fm_R (Branch yz zu zv fm_rl fm_rr) = mkBalBranch02 fm_L fm_R (Branch yz zu zv fm_rl fm_rr)

mkBalBranch00 fm_L fm_R yz zu zv fm_rl fm_rr True = double_L fm_L fm_R

mkBalBranch01 fm_L fm_R yz zu zv fm_rl fm_rr True = single_L fm_L fm_R
mkBalBranch01 fm_L fm_R yz zu zv fm_rl fm_rr False = mkBalBranch00 fm_L fm_R yz zu zv fm_rl fm_rr otherwise

mkBalBranch02 fm_L fm_R (Branch yz zu zv fm_rl fm_rr) = mkBalBranch01 fm_L fm_R yz zu zv fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr)

The following Function with conditions
mkBalBranch key elt fm_L fm_R
 | size_l + size_r < 2
 = mkBranch 1 key elt fm_L fm_R
 | size_r > sIZE_RATIO * size_l
 = mkBalBranch0 fm_L fm_R fm_R
 | size_l > sIZE_RATIO * size_r
 = mkBalBranch1 fm_L fm_R fm_L
 | otherwise
 = mkBranch 2 key elt fm_L fm_R
where 
double_L fm_l (Branch key_r elt_r yx (Branch key_rl elt_rl yy fm_rll fm_rlrfm_rr) = mkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l xy fm_ll (Branch key_lr elt_lr xz fm_lrl fm_lrr)) fm_r = mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
mkBalBranch0 fm_L fm_R (Branch yz zu zv fm_rl fm_rr)
 | sizeFM fm_rl < 2 * sizeFM fm_rr
 = single_L fm_L fm_R
 | otherwise
 = double_L fm_L fm_R
mkBalBranch1 fm_L fm_R (Branch yu yv yw fm_ll fm_lr)
 | sizeFM fm_lr < 2 * sizeFM fm_ll
 = single_R fm_L fm_R
 | otherwise
 = double_R fm_L fm_R
single_L fm_l (Branch key_r elt_r zw fm_rl fm_rr) = mkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rlfm_rr
single_R (Branch key_l elt_l xx fm_ll fm_lrfm_r = mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l  = sizeFM fm_L
size_r  = sizeFM fm_R

is transformed to
mkBalBranch key elt fm_L fm_R = mkBalBranch6 key elt fm_L fm_R

mkBalBranch6 key elt fm_L fm_R = 
mkBalBranch5 key elt fm_L fm_R (size_l + size_r < 2)
where 
double_L fm_l (Branch key_r elt_r yx (Branch key_rl elt_rl yy fm_rll fm_rlrfm_rr) = mkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l xy fm_ll (Branch key_lr elt_lr xz fm_lrl fm_lrr)) fm_r = mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
mkBalBranch0 fm_L fm_R (Branch yz zu zv fm_rl fm_rr) = mkBalBranch02 fm_L fm_R (Branch yz zu zv fm_rl fm_rr)
mkBalBranch00 fm_L fm_R yz zu zv fm_rl fm_rr True = double_L fm_L fm_R
mkBalBranch01 fm_L fm_R yz zu zv fm_rl fm_rr True = single_L fm_L fm_R
mkBalBranch01 fm_L fm_R yz zu zv fm_rl fm_rr False = mkBalBranch00 fm_L fm_R yz zu zv fm_rl fm_rr otherwise
mkBalBranch02 fm_L fm_R (Branch yz zu zv fm_rl fm_rr) = mkBalBranch01 fm_L fm_R yz zu zv fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr)
mkBalBranch1 fm_L fm_R (Branch yu yv yw fm_ll fm_lr) = mkBalBranch12 fm_L fm_R (Branch yu yv yw fm_ll fm_lr)
mkBalBranch10 fm_L fm_R yu yv yw fm_ll fm_lr True = double_R fm_L fm_R
mkBalBranch11 fm_L fm_R yu yv yw fm_ll fm_lr True = single_R fm_L fm_R
mkBalBranch11 fm_L fm_R yu yv yw fm_ll fm_lr False = mkBalBranch10 fm_L fm_R yu yv yw fm_ll fm_lr otherwise
mkBalBranch12 fm_L fm_R (Branch yu yv yw fm_ll fm_lr) = mkBalBranch11 fm_L fm_R yu yv yw fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll)
mkBalBranch2 key elt fm_L fm_R True = mkBranch 2 key elt fm_L fm_R
mkBalBranch3 key elt fm_L fm_R True = mkBalBranch1 fm_L fm_R fm_L
mkBalBranch3 key elt fm_L fm_R False = mkBalBranch2 key elt fm_L fm_R otherwise
mkBalBranch4 key elt fm_L fm_R True = mkBalBranch0 fm_L fm_R fm_R
mkBalBranch4 key elt fm_L fm_R False = mkBalBranch3 key elt fm_L fm_R (size_l > sIZE_RATIO * size_r)
mkBalBranch5 key elt fm_L fm_R True = mkBranch 1 key elt fm_L fm_R
mkBalBranch5 key elt fm_L fm_R False = mkBalBranch4 key elt fm_L fm_R (size_r > sIZE_RATIO * size_l)
single_L fm_l (Branch key_r elt_r zw fm_rl fm_rr) = mkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rlfm_rr
single_R (Branch key_l elt_l xx fm_ll fm_lrfm_r = mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l  = sizeFM fm_L
size_r  = sizeFM fm_R

The following Function with conditions
glueBal EmptyFM fm2 = fm2
glueBal fm1 EmptyFM = fm1
glueBal fm1 fm2
 | sizeFM fm2 > sizeFM fm1
 = mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2)
 | otherwise
 = mkBalBranch mid_key1 mid_elt1 (deleteMax fm1fm2
where 
mid_elt1  = mid_elt10 vv2
mid_elt10 (zx,mid_elt1) = mid_elt1
mid_elt2  = mid_elt20 vv3
mid_elt20 (zy,mid_elt2) = mid_elt2
mid_key1  = mid_key10 vv2
mid_key10 (mid_key1,zz) = mid_key1
mid_key2  = mid_key20 vv3
mid_key20 (mid_key2,vuu) = mid_key2
vv2  = findMax fm1
vv3  = findMin fm2

is transformed to
glueBal EmptyFM fm2 = glueBal4 EmptyFM fm2
glueBal fm1 EmptyFM = glueBal3 fm1 EmptyFM
glueBal fm1 fm2 = glueBal2 fm1 fm2

glueBal2 fm1 fm2 = 
glueBal1 fm1 fm2 (sizeFM fm2 > sizeFM fm1)
where 
glueBal0 fm1 fm2 True = mkBalBranch mid_key1 mid_elt1 (deleteMax fm1fm2
glueBal1 fm1 fm2 True = mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2)
glueBal1 fm1 fm2 False = glueBal0 fm1 fm2 otherwise
mid_elt1  = mid_elt10 vv2
mid_elt10 (zx,mid_elt1) = mid_elt1
mid_elt2  = mid_elt20 vv3
mid_elt20 (zy,mid_elt2) = mid_elt2
mid_key1  = mid_key10 vv2
mid_key10 (mid_key1,zz) = mid_key1
mid_key2  = mid_key20 vv3
mid_key20 (mid_key2,vuu) = mid_key2
vv2  = findMax fm1
vv3  = findMin fm2

glueBal3 fm1 EmptyFM = fm1
glueBal3 xwu xwv = glueBal2 xwu xwv

glueBal4 EmptyFM fm2 = fm2
glueBal4 xwx xwy = glueBal3 xwx xwy

The following Function with conditions
addToFM_C combiner EmptyFM key elt = unitFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt
 | new_key < key
 = mkBalBranch key elt (addToFM_C combiner fm_l new_key new_eltfm_r
 | new_key > key
 = mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
 | otherwise
 = Branch new_key (combiner elt new_eltsize fm_l fm_r

is transformed to
addToFM_C combiner EmptyFM key elt = addToFM_C4 combiner EmptyFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt = addToFM_C3 combiner (Branch key elt size fm_l fm_rnew_key new_elt

addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt True = mkBalBranch key elt (addToFM_C combiner fm_l new_key new_eltfm_r
addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt False = addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt (new_key > key)

addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt True = Branch new_key (combiner elt new_eltsize fm_l fm_r

addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt True = mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt False = addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt otherwise

addToFM_C3 combiner (Branch key elt size fm_l fm_rnew_key new_elt = addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt (new_key < key)

addToFM_C4 combiner EmptyFM key elt = unitFM key elt
addToFM_C4 xxv xxw xxx xxy = addToFM_C3 xxv xxw xxx xxy

The following Function with conditions
intersectFM_C combiner fm1 EmptyFM = emptyFM
intersectFM_C combiner EmptyFM fm2 = emptyFM
intersectFM_C combiner fm1 (Branch split_key elt2 vuv left right)
 | Maybe.isJust maybe_elt1
 = mkVBalBranch split_key (combiner elt1 elt2) (intersectFM_C combiner lts left) (intersectFM_C combiner gts right)
 | otherwise
 = glueVBal (intersectFM_C combiner lts left) (intersectFM_C combiner gts right)
where 
elt1  = elt10 vv1
elt10 (Just elt1) = elt1
gts  = splitGT fm1 split_key
lts  = splitLT fm1 split_key
maybe_elt1  = lookupFM fm1 split_key
vv1  = maybe_elt1

is transformed to
intersectFM_C combiner fm1 EmptyFM = intersectFM_C4 combiner fm1 EmptyFM
intersectFM_C combiner EmptyFM fm2 = intersectFM_C3 combiner EmptyFM fm2
intersectFM_C combiner fm1 (Branch split_key elt2 vuv left right) = intersectFM_C2 combiner fm1 (Branch split_key elt2 vuv left right)

intersectFM_C2 combiner fm1 (Branch split_key elt2 vuv left right) = 
intersectFM_C1 combiner fm1 split_key elt2 vuv left right (Maybe.isJust maybe_elt1)
where 
elt1  = elt10 vv1
elt10 (Just elt1) = elt1
gts  = splitGT fm1 split_key
intersectFM_C0 combiner fm1 split_key elt2 vuv left right True = glueVBal (intersectFM_C combiner lts left) (intersectFM_C combiner gts right)
intersectFM_C1 combiner fm1 split_key elt2 vuv left right True = mkVBalBranch split_key (combiner elt1 elt2) (intersectFM_C combiner lts left) (intersectFM_C combiner gts right)
intersectFM_C1 combiner fm1 split_key elt2 vuv left right False = intersectFM_C0 combiner fm1 split_key elt2 vuv left right otherwise
lts  = splitLT fm1 split_key
maybe_elt1  = lookupFM fm1 split_key
vv1  = maybe_elt1

intersectFM_C3 combiner EmptyFM fm2 = emptyFM
intersectFM_C3 xyv xyw xyx = intersectFM_C2 xyv xyw xyx

intersectFM_C4 combiner fm1 EmptyFM = emptyFM
intersectFM_C4 xyz xzu xzv = intersectFM_C3 xyz xzu xzv

The following Function with conditions
splitLT EmptyFM split_key = emptyFM
splitLT (Branch key elt vvz fm_l fm_rsplit_key
 | split_key < key
 = splitLT fm_l split_key
 | split_key > key
 = mkVBalBranch key elt fm_l (splitLT fm_r split_key)
 | otherwise
 = fm_l

is transformed to
splitLT EmptyFM split_key = splitLT4 EmptyFM split_key
splitLT (Branch key elt vvz fm_l fm_rsplit_key = splitLT3 (Branch key elt vvz fm_l fm_rsplit_key

splitLT0 key elt vvz fm_l fm_r split_key True = fm_l

splitLT2 key elt vvz fm_l fm_r split_key True = splitLT fm_l split_key
splitLT2 key elt vvz fm_l fm_r split_key False = splitLT1 key elt vvz fm_l fm_r split_key (split_key > key)

splitLT1 key elt vvz fm_l fm_r split_key True = mkVBalBranch key elt fm_l (splitLT fm_r split_key)
splitLT1 key elt vvz fm_l fm_r split_key False = splitLT0 key elt vvz fm_l fm_r split_key otherwise

splitLT3 (Branch key elt vvz fm_l fm_rsplit_key = splitLT2 key elt vvz fm_l fm_r split_key (split_key < key)

splitLT4 EmptyFM split_key = emptyFM
splitLT4 xzy xzz = splitLT3 xzy xzz

The following Function with conditions
mkVBalBranch key elt EmptyFM fm_r = addToFM fm_r key elt
mkVBalBranch key elt fm_l EmptyFM = addToFM fm_l key elt
mkVBalBranch key elt (Branch vxz vyu vyv vyw vyx) (Branch vyz vzu vzv vzw vzx)
 | sIZE_RATIO * size_l < size_r
 = mkBalBranch vyz vzu (mkVBalBranch key elt (Branch vxz vyu vyv vyw vyxvzwvzx
 | sIZE_RATIO * size_r < size_l
 = mkBalBranch vxz vyu vyw (mkVBalBranch key elt vyx (Branch vyz vzu vzv vzw vzx))
 | otherwise
 = mkBranch 13 key elt (Branch vxz vyu vyv vyw vyx) (Branch vyz vzu vzv vzw vzx)
where 
size_l  = sizeFM (Branch vxz vyu vyv vyw vyx)
size_r  = sizeFM (Branch vyz vzu vzv vzw vzx)

is transformed to
mkVBalBranch key elt EmptyFM fm_r = mkVBalBranch5 key elt EmptyFM fm_r
mkVBalBranch key elt fm_l EmptyFM = mkVBalBranch4 key elt fm_l EmptyFM
mkVBalBranch key elt (Branch vxz vyu vyv vyw vyx) (Branch vyz vzu vzv vzw vzx) = mkVBalBranch3 key elt (Branch vxz vyu vyv vyw vyx) (Branch vyz vzu vzv vzw vzx)

mkVBalBranch3 key elt (Branch vxz vyu vyv vyw vyx) (Branch vyz vzu vzv vzw vzx) = 
mkVBalBranch2 key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx (sIZE_RATIO * size_l < size_r)
where 
mkVBalBranch0 key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx True = mkBranch 13 key elt (Branch vxz vyu vyv vyw vyx) (Branch vyz vzu vzv vzw vzx)
mkVBalBranch1 key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx True = mkBalBranch vxz vyu vyw (mkVBalBranch key elt vyx (Branch vyz vzu vzv vzw vzx))
mkVBalBranch1 key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx False = mkVBalBranch0 key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx otherwise
mkVBalBranch2 key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx True = mkBalBranch vyz vzu (mkVBalBranch key elt (Branch vxz vyu vyv vyw vyxvzwvzx
mkVBalBranch2 key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx False = mkVBalBranch1 key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx (sIZE_RATIO * size_r < size_l)
size_l  = sizeFM (Branch vxz vyu vyv vyw vyx)
size_r  = sizeFM (Branch vyz vzu vzv vzw vzx)

mkVBalBranch4 key elt fm_l EmptyFM = addToFM fm_l key elt
mkVBalBranch4 yux yuy yuz yvu = mkVBalBranch3 yux yuy yuz yvu

mkVBalBranch5 key elt EmptyFM fm_r = addToFM fm_r key elt
mkVBalBranch5 yvw yvx yvy yvz = mkVBalBranch4 yvw yvx yvy yvz

The following Function with conditions
lookupFM EmptyFM key = Nothing
lookupFM (Branch key elt wuw fm_l fm_rkey_to_find
 | key_to_find < key
 = lookupFM fm_l key_to_find
 | key_to_find > key
 = lookupFM fm_r key_to_find
 | otherwise
 = Just elt

is transformed to
lookupFM EmptyFM key = lookupFM4 EmptyFM key
lookupFM (Branch key elt wuw fm_l fm_rkey_to_find = lookupFM3 (Branch key elt wuw fm_l fm_rkey_to_find

lookupFM2 key elt wuw fm_l fm_r key_to_find True = lookupFM fm_l key_to_find
lookupFM2 key elt wuw fm_l fm_r key_to_find False = lookupFM1 key elt wuw fm_l fm_r key_to_find (key_to_find > key)

lookupFM0 key elt wuw fm_l fm_r key_to_find True = Just elt

lookupFM1 key elt wuw fm_l fm_r key_to_find True = lookupFM fm_r key_to_find
lookupFM1 key elt wuw fm_l fm_r key_to_find False = lookupFM0 key elt wuw fm_l fm_r key_to_find otherwise

lookupFM3 (Branch key elt wuw fm_l fm_rkey_to_find = lookupFM2 key elt wuw fm_l fm_r key_to_find (key_to_find < key)

lookupFM4 EmptyFM key = Nothing
lookupFM4 yww ywx = lookupFM3 yww ywx

The following Function with conditions
compare x y
 | x == y
 = EQ
 | x <= y
 = LT
 | otherwise
 = GT

is transformed to
compare x y = compare3 x y

compare1 x y True = LT
compare1 x y False = compare0 x y otherwise

compare2 x y True = EQ
compare2 x y False = compare1 x y (x <= y)

compare0 x y True = GT

compare3 x y = compare2 x y (x == y)

The following Function with conditions
gcd' x 0 = x
gcd' x y = gcd' y (x `rem` y)

is transformed to
gcd' x ywy = gcd'2 x ywy
gcd' x y = gcd'0 x y

gcd'0 x y = gcd' y (x `rem` y)

gcd'1 True x ywy = x
gcd'1 ywz yxu yxv = gcd'0 yxu yxv

gcd'2 x ywy = gcd'1 (ywy == 0) x ywy
gcd'2 yxw yxx = gcd'0 yxw yxx

The following Function with conditions
gcd 0 0 = error []
gcd x y = 
gcd' (abs x) (abs y)
where 
gcd' x 0 = x
gcd' x y = gcd' y (x `rem` y)

is transformed to
gcd yxy yxz = gcd3 yxy yxz
gcd x y = gcd0 x y

gcd0 x y = 
gcd' (abs x) (abs y)
where 
gcd' x ywy = gcd'2 x ywy
gcd' x y = gcd'0 x y
gcd'0 x y = gcd' y (x `rem` y)
gcd'1 True x ywy = x
gcd'1 ywz yxu yxv = gcd'0 yxu yxv
gcd'2 x ywy = gcd'1 (ywy == 0) x ywy
gcd'2 yxw yxx = gcd'0 yxw yxx

gcd1 True yxy yxz = error []
gcd1 yyu yyv yyw = gcd0 yyv yyw

gcd2 True yxy yxz = gcd1 (yxz == 0) yxy yxz
gcd2 yyx yyy yyz = gcd0 yyy yyz

gcd3 yxy yxz = gcd2 (yxy == 0) yxy yxz
gcd3 yzu yzv = gcd0 yzu yzv

The following Function with conditions
absReal x
 | x >= 0
 = x
 | otherwise
 = `negate` x

is transformed to
absReal x = absReal2 x

absReal1 x True = x
absReal1 x False = absReal0 x otherwise

absReal0 x True = `negate` x

absReal2 x = absReal1 x (x >= 0)

The following Function with conditions
undefined 
 | False
 = undefined

is transformed to
undefined  = undefined1

undefined0 True = undefined

undefined1  = undefined0 False

The following Function with conditions
reduce x y
 | y == 0
 = error []
 | otherwise
 = x `quot` d :% (y `quot` d)
where 
d  = gcd x y

is transformed to
reduce x y = reduce2 x y

reduce2 x y = 
reduce1 x y (y == 0)
where 
d  = gcd x y
reduce0 x y True = x `quot` d :% (y `quot` d)
reduce1 x y True = error []
reduce1 x y False = reduce0 x y otherwise



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
HASKELL
                      ↳ LetRed

mainModule FiniteMap
  ((intersectFM :: Ord a => FiniteMap (Maybe a) b  ->  FiniteMap (Maybe a) b  ->  FiniteMap (Maybe a) b) :: Ord a => FiniteMap (Maybe a) b  ->  FiniteMap (Maybe a) b  ->  FiniteMap (Maybe a) b)

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap a b = EmptyFM  | Branch a b Int (FiniteMap a b) (FiniteMap a b


  instance (Eq a, Eq b) => Eq (FiniteMap a b) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  addToFM :: Ord b => FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a
addToFM fm key elt addToFM_C addToFM0 fm key elt

  
addToFM0 old new new

  addToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a
addToFM_C combiner EmptyFM key elt addToFM_C4 combiner EmptyFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt addToFM_C3 combiner (Branch key elt size fm_l fm_r) new_key new_elt

  
addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt True Branch new_key (combiner elt new_elt) size fm_l fm_r

  
addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt True mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt False addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt otherwise

  
addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt True mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt False addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt (new_key > key)

  
addToFM_C3 combiner (Branch key elt size fm_l fm_rnew_key new_elt addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt (new_key < key)

  
addToFM_C4 combiner EmptyFM key elt unitFM key elt
addToFM_C4 xxv xxw xxx xxy addToFM_C3 xxv xxw xxx xxy

  deleteMax :: Ord a => FiniteMap a b  ->  FiniteMap a b
deleteMax (Branch key elt vxw fm_l EmptyFMfm_l
deleteMax (Branch key elt vxx fm_l fm_rmkBalBranch key elt fm_l (deleteMax fm_r)

  deleteMin :: Ord b => FiniteMap b a  ->  FiniteMap b a
deleteMin (Branch key elt wux EmptyFM fm_rfm_r
deleteMin (Branch key elt wuy fm_l fm_rmkBalBranch key elt (deleteMin fm_l) fm_r

  emptyFM :: FiniteMap a b
emptyFM EmptyFM

  findMax :: FiniteMap a b  ->  (a,b)
findMax (Branch key elt vzy vzz EmptyFM(key,elt)
findMax (Branch key elt wuu wuv fm_rfindMax fm_r

  findMin :: FiniteMap a b  ->  (a,b)
findMin (Branch key elt vwu EmptyFM vwv(key,elt)
findMin (Branch key elt vww fm_l vwxfindMin fm_l

  fmToList :: FiniteMap a b  ->  [(a,b)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (c  ->  b  ->  a  ->  a ->  a  ->  FiniteMap c b  ->  a
foldFM k z EmptyFM z
foldFM k z (Branch key elt vvy fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  glueBal :: Ord b => FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
glueBal EmptyFM fm2 glueBal4 EmptyFM fm2
glueBal fm1 EmptyFM glueBal3 fm1 EmptyFM
glueBal fm1 fm2 glueBal2 fm1 fm2

  
glueBal2 fm1 fm2 
glueBal1 fm1 fm2 (sizeFM fm2 > sizeFM fm1) where 
glueBal0 fm1 fm2 True mkBalBranch mid_key1 mid_elt1 (deleteMax fm1) fm2
glueBal1 fm1 fm2 True mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2)
glueBal1 fm1 fm2 False glueBal0 fm1 fm2 otherwise
mid_elt1 mid_elt10 vv2
mid_elt10 (zx,mid_elt1mid_elt1
mid_elt2 mid_elt20 vv3
mid_elt20 (zy,mid_elt2mid_elt2
mid_key1 mid_key10 vv2
mid_key10 (mid_key1,zzmid_key1
mid_key2 mid_key20 vv3
mid_key20 (mid_key2,vuumid_key2
vv2 findMax fm1
vv3 findMin fm2

  
glueBal3 fm1 EmptyFM fm1
glueBal3 xwu xwv glueBal2 xwu xwv

  
glueBal4 EmptyFM fm2 fm2
glueBal4 xwx xwy glueBal3 xwx xwy

  glueVBal :: Ord a => FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
glueVBal EmptyFM fm2 glueVBal5 EmptyFM fm2
glueVBal fm1 EmptyFM glueVBal4 fm1 EmptyFM
glueVBal (Branch vy vz wu wv ww) (Branch wy wz xu xv xwglueVBal3 (Branch vy vz wu wv ww) (Branch wy wz xu xv xw)

  
glueVBal3 (Branch vy vz wu wv ww) (Branch wy wz xu xv xw
glueVBal2 vy vz wu wv ww wy wz xu xv xw (sIZE_RATIO * size_l < size_r) where 
glueVBal0 vy vz wu wv ww wy wz xu xv xw True glueBal (Branch vy vz wu wv ww) (Branch wy wz xu xv xw)
glueVBal1 vy vz wu wv ww wy wz xu xv xw True mkBalBranch vy vz wv (glueVBal ww (Branch wy wz xu xv xw))
glueVBal1 vy vz wu wv ww wy wz xu xv xw False glueVBal0 vy vz wu wv ww wy wz xu xv xw otherwise
glueVBal2 vy vz wu wv ww wy wz xu xv xw True mkBalBranch wy wz (glueVBal (Branch vy vz wu wv ww) xv) xw
glueVBal2 vy vz wu wv ww wy wz xu xv xw False glueVBal1 vy vz wu wv ww wy wz xu xv xw (sIZE_RATIO * size_r < size_l)
size_l sizeFM (Branch vy vz wu wv ww)
size_r sizeFM (Branch wy wz xu xv xw)

  
glueVBal4 fm1 EmptyFM fm1
glueVBal4 xuy xuz glueVBal3 xuy xuz

  
glueVBal5 EmptyFM fm2 fm2
glueVBal5 xvv xvw glueVBal4 xvv xvw

  intersectFM :: Ord b => FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
intersectFM fm1 fm2 intersectFM_C intersectFM0 fm1 fm2

  
intersectFM0 left right right

  intersectFM_C :: Ord d => (a  ->  c  ->  b ->  FiniteMap d a  ->  FiniteMap d c  ->  FiniteMap d b
intersectFM_C combiner fm1 EmptyFM intersectFM_C4 combiner fm1 EmptyFM
intersectFM_C combiner EmptyFM fm2 intersectFM_C3 combiner EmptyFM fm2
intersectFM_C combiner fm1 (Branch split_key elt2 vuv left rightintersectFM_C2 combiner fm1 (Branch split_key elt2 vuv left right)

  
intersectFM_C2 combiner fm1 (Branch split_key elt2 vuv left right
intersectFM_C1 combiner fm1 split_key elt2 vuv left right (Maybe.isJust maybe_elt1) where 
elt1 elt10 vv1
elt10 (Just elt1elt1
gts splitGT fm1 split_key
intersectFM_C0 combiner fm1 split_key elt2 vuv left right True glueVBal (intersectFM_C combiner lts left) (intersectFM_C combiner gts right)
intersectFM_C1 combiner fm1 split_key elt2 vuv left right True mkVBalBranch split_key (combiner elt1 elt2) (intersectFM_C combiner lts left) (intersectFM_C combiner gts right)
intersectFM_C1 combiner fm1 split_key elt2 vuv left right False intersectFM_C0 combiner fm1 split_key elt2 vuv left right otherwise
lts splitLT fm1 split_key
maybe_elt1 lookupFM fm1 split_key
vv1 maybe_elt1

  
intersectFM_C3 combiner EmptyFM fm2 emptyFM
intersectFM_C3 xyv xyw xyx intersectFM_C2 xyv xyw xyx

  
intersectFM_C4 combiner fm1 EmptyFM emptyFM
intersectFM_C4 xyz xzu xzv intersectFM_C3 xyz xzu xzv

  lookupFM :: Ord a => FiniteMap a b  ->  a  ->  Maybe b
lookupFM EmptyFM key lookupFM4 EmptyFM key
lookupFM (Branch key elt wuw fm_l fm_rkey_to_find lookupFM3 (Branch key elt wuw fm_l fm_r) key_to_find

  
lookupFM0 key elt wuw fm_l fm_r key_to_find True Just elt

  
lookupFM1 key elt wuw fm_l fm_r key_to_find True lookupFM fm_r key_to_find
lookupFM1 key elt wuw fm_l fm_r key_to_find False lookupFM0 key elt wuw fm_l fm_r key_to_find otherwise

  
lookupFM2 key elt wuw fm_l fm_r key_to_find True lookupFM fm_l key_to_find
lookupFM2 key elt wuw fm_l fm_r key_to_find False lookupFM1 key elt wuw fm_l fm_r key_to_find (key_to_find > key)

  
lookupFM3 (Branch key elt wuw fm_l fm_rkey_to_find lookupFM2 key elt wuw fm_l fm_r key_to_find (key_to_find < key)

  
lookupFM4 EmptyFM key Nothing
lookupFM4 yww ywx lookupFM3 yww ywx

  mkBalBranch :: Ord a => a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkBalBranch key elt fm_L fm_R mkBalBranch6 key elt fm_L fm_R

  
mkBalBranch6 key elt fm_L fm_R 
mkBalBranch5 key elt fm_L fm_R (size_l + size_r < 2) where 
double_L fm_l (Branch key_r elt_r yx (Branch key_rl elt_rl yy fm_rll fm_rlr) fm_rrmkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l xy fm_ll (Branch key_lr elt_lr xz fm_lrl fm_lrr)) fm_r mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
mkBalBranch0 fm_L fm_R (Branch yz zu zv fm_rl fm_rrmkBalBranch02 fm_L fm_R (Branch yz zu zv fm_rl fm_rr)
mkBalBranch00 fm_L fm_R yz zu zv fm_rl fm_rr True double_L fm_L fm_R
mkBalBranch01 fm_L fm_R yz zu zv fm_rl fm_rr True single_L fm_L fm_R
mkBalBranch01 fm_L fm_R yz zu zv fm_rl fm_rr False mkBalBranch00 fm_L fm_R yz zu zv fm_rl fm_rr otherwise
mkBalBranch02 fm_L fm_R (Branch yz zu zv fm_rl fm_rrmkBalBranch01 fm_L fm_R yz zu zv fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr)
mkBalBranch1 fm_L fm_R (Branch yu yv yw fm_ll fm_lrmkBalBranch12 fm_L fm_R (Branch yu yv yw fm_ll fm_lr)
mkBalBranch10 fm_L fm_R yu yv yw fm_ll fm_lr True double_R fm_L fm_R
mkBalBranch11 fm_L fm_R yu yv yw fm_ll fm_lr True single_R fm_L fm_R
mkBalBranch11 fm_L fm_R yu yv yw fm_ll fm_lr False mkBalBranch10 fm_L fm_R yu yv yw fm_ll fm_lr otherwise
mkBalBranch12 fm_L fm_R (Branch yu yv yw fm_ll fm_lrmkBalBranch11 fm_L fm_R yu yv yw fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll)
mkBalBranch2 key elt fm_L fm_R True mkBranch 2 key elt fm_L fm_R
mkBalBranch3 key elt fm_L fm_R True mkBalBranch1 fm_L fm_R fm_L
mkBalBranch3 key elt fm_L fm_R False mkBalBranch2 key elt fm_L fm_R otherwise
mkBalBranch4 key elt fm_L fm_R True mkBalBranch0 fm_L fm_R fm_R
mkBalBranch4 key elt fm_L fm_R False mkBalBranch3 key elt fm_L fm_R (size_l > sIZE_RATIO * size_r)
mkBalBranch5 key elt fm_L fm_R True mkBranch 1 key elt fm_L fm_R
mkBalBranch5 key elt fm_L fm_R False mkBalBranch4 key elt fm_L fm_R (size_r > sIZE_RATIO * size_l)
single_L fm_l (Branch key_r elt_r zw fm_rl fm_rrmkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr
single_R (Branch key_l elt_l xx fm_ll fm_lrfm_r mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l sizeFM fm_L
size_r sizeFM fm_R

  mkBranch :: Ord b => Int  ->  b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkBranch which key elt fm_l fm_r 
let 
result Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
in result
 where 
balance_ok True
left_ok left_ok0 fm_l key fm_l
left_ok0 fm_l key EmptyFM True
left_ok0 fm_l key (Branch left_key vuw vux vuy vuz
let 
biggest_left_key fst (findMax fm_l)
in biggest_left_key < key
left_size sizeFM fm_l
right_ok right_ok0 fm_r key fm_r
right_ok0 fm_r key EmptyFM True
right_ok0 fm_r key (Branch right_key vvu vvv vvw vvx
let 
smallest_right_key fst (findMin fm_r)
in key < smallest_right_key
right_size sizeFM fm_r
unbox :: Int  ->  Int
unbox x x

  mkVBalBranch :: Ord a => a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkVBalBranch key elt EmptyFM fm_r mkVBalBranch5 key elt EmptyFM fm_r
mkVBalBranch key elt fm_l EmptyFM mkVBalBranch4 key elt fm_l EmptyFM
mkVBalBranch key elt (Branch vxz vyu vyv vyw vyx) (Branch vyz vzu vzv vzw vzxmkVBalBranch3 key elt (Branch vxz vyu vyv vyw vyx) (Branch vyz vzu vzv vzw vzx)

  
mkVBalBranch3 key elt (Branch vxz vyu vyv vyw vyx) (Branch vyz vzu vzv vzw vzx
mkVBalBranch2 key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx (sIZE_RATIO * size_l < size_r) where 
mkVBalBranch0 key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx True mkBranch 13 key elt (Branch vxz vyu vyv vyw vyx) (Branch vyz vzu vzv vzw vzx)
mkVBalBranch1 key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx True mkBalBranch vxz vyu vyw (mkVBalBranch key elt vyx (Branch vyz vzu vzv vzw vzx))
mkVBalBranch1 key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx False mkVBalBranch0 key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx otherwise
mkVBalBranch2 key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx True mkBalBranch vyz vzu (mkVBalBranch key elt (Branch vxz vyu vyv vyw vyx) vzw) vzx
mkVBalBranch2 key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx False mkVBalBranch1 key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx (sIZE_RATIO * size_r < size_l)
size_l sizeFM (Branch vxz vyu vyv vyw vyx)
size_r sizeFM (Branch vyz vzu vzv vzw vzx)

  
mkVBalBranch4 key elt fm_l EmptyFM addToFM fm_l key elt
mkVBalBranch4 yux yuy yuz yvu mkVBalBranch3 yux yuy yuz yvu

  
mkVBalBranch5 key elt EmptyFM fm_r addToFM fm_r key elt
mkVBalBranch5 yvw yvx yvy yvz mkVBalBranch4 yvw yvx yvy yvz

  sIZE_RATIO :: Int
sIZE_RATIO 5

  sizeFM :: FiniteMap b a  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch vwy vwz size vxu vxvsize

  splitGT :: Ord a => FiniteMap a b  ->  a  ->  FiniteMap a b
splitGT EmptyFM split_key splitGT4 EmptyFM split_key
splitGT (Branch key elt vw fm_l fm_rsplit_key splitGT3 (Branch key elt vw fm_l fm_r) split_key

  
splitGT0 key elt vw fm_l fm_r split_key True fm_r

  
splitGT1 key elt vw fm_l fm_r split_key True mkVBalBranch key elt (splitGT fm_l split_key) fm_r
splitGT1 key elt vw fm_l fm_r split_key False splitGT0 key elt vw fm_l fm_r split_key otherwise

  
splitGT2 key elt vw fm_l fm_r split_key True splitGT fm_r split_key
splitGT2 key elt vw fm_l fm_r split_key False splitGT1 key elt vw fm_l fm_r split_key (split_key < key)

  
splitGT3 (Branch key elt vw fm_l fm_rsplit_key splitGT2 key elt vw fm_l fm_r split_key (split_key > key)

  
splitGT4 EmptyFM split_key emptyFM
splitGT4 wzz xuu splitGT3 wzz xuu

  splitLT :: Ord b => FiniteMap b a  ->  b  ->  FiniteMap b a
splitLT EmptyFM split_key splitLT4 EmptyFM split_key
splitLT (Branch key elt vvz fm_l fm_rsplit_key splitLT3 (Branch key elt vvz fm_l fm_r) split_key

  
splitLT0 key elt vvz fm_l fm_r split_key True fm_l

  
splitLT1 key elt vvz fm_l fm_r split_key True mkVBalBranch key elt fm_l (splitLT fm_r split_key)
splitLT1 key elt vvz fm_l fm_r split_key False splitLT0 key elt vvz fm_l fm_r split_key otherwise

  
splitLT2 key elt vvz fm_l fm_r split_key True splitLT fm_l split_key
splitLT2 key elt vvz fm_l fm_r split_key False splitLT1 key elt vvz fm_l fm_r split_key (split_key > key)

  
splitLT3 (Branch key elt vvz fm_l fm_rsplit_key splitLT2 key elt vvz fm_l fm_r split_key (split_key < key)

  
splitLT4 EmptyFM split_key emptyFM
splitLT4 xzy xzz splitLT3 xzy xzz

  unitFM :: b  ->  a  ->  FiniteMap b a
unitFM key elt Branch key elt 1 emptyFM emptyFM


module Maybe where
  import qualified FiniteMap
import qualified Prelude

  isJust :: Maybe a  ->  Bool
isJust Nothing False
isJust wuz True



Let/Where Reductions:
The bindings of the following Let/Where expression
intersectFM_C1 combiner fm1 split_key elt2 vuv left right (Maybe.isJust maybe_elt1)
where 
elt1  = elt10 vv1
elt10 (Just elt1) = elt1
gts  = splitGT fm1 split_key
intersectFM_C0 combiner fm1 split_key elt2 vuv left right True = glueVBal (intersectFM_C combiner lts left) (intersectFM_C combiner gts right)
intersectFM_C1 combiner fm1 split_key elt2 vuv left right True = mkVBalBranch split_key (combiner elt1 elt2) (intersectFM_C combiner lts left) (intersectFM_C combiner gts right)
intersectFM_C1 combiner fm1 split_key elt2 vuv left right False = intersectFM_C0 combiner fm1 split_key elt2 vuv left right otherwise
lts  = splitLT fm1 split_key
maybe_elt1  = lookupFM fm1 split_key
vv1  = maybe_elt1

are unpacked to the following functions on top level
intersectFM_C2Maybe_elt1 yzw yzx = lookupFM yzw yzx

intersectFM_C2Vv1 yzw yzx = intersectFM_C2Maybe_elt1 yzw yzx

intersectFM_C2IntersectFM_C1 yzw yzx combiner fm1 split_key elt2 vuv left right True = mkVBalBranch split_key (combiner (intersectFM_C2Elt1 yzw yzxelt2) (intersectFM_C combiner (intersectFM_C2Lts yzw yzxleft) (intersectFM_C combiner (intersectFM_C2Gts yzw yzxright)
intersectFM_C2IntersectFM_C1 yzw yzx combiner fm1 split_key elt2 vuv left right False = intersectFM_C2IntersectFM_C0 yzw yzx combiner fm1 split_key elt2 vuv left right otherwise

intersectFM_C2Lts yzw yzx = splitLT yzw yzx

intersectFM_C2IntersectFM_C0 yzw yzx combiner fm1 split_key elt2 vuv left right True = glueVBal (intersectFM_C combiner (intersectFM_C2Lts yzw yzxleft) (intersectFM_C combiner (intersectFM_C2Gts yzw yzxright)

intersectFM_C2Elt10 yzw yzx (Just elt1) = elt1

intersectFM_C2Gts yzw yzx = splitGT yzw yzx

intersectFM_C2Elt1 yzw yzx = intersectFM_C2Elt10 yzw yzx (intersectFM_C2Vv1 yzw yzx)

The bindings of the following Let/Where expression
glueBal1 fm1 fm2 (sizeFM fm2 > sizeFM fm1)
where 
glueBal0 fm1 fm2 True = mkBalBranch mid_key1 mid_elt1 (deleteMax fm1fm2
glueBal1 fm1 fm2 True = mkBalBranch mid_key2 mid_elt2 fm1 (deleteMin fm2)
glueBal1 fm1 fm2 False = glueBal0 fm1 fm2 otherwise
mid_elt1  = mid_elt10 vv2
mid_elt10 (zx,mid_elt1) = mid_elt1
mid_elt2  = mid_elt20 vv3
mid_elt20 (zy,mid_elt2) = mid_elt2
mid_key1  = mid_key10 vv2
mid_key10 (mid_key1,zz) = mid_key1
mid_key2  = mid_key20 vv3
mid_key20 (mid_key2,vuu) = mid_key2
vv2  = findMax fm1
vv3  = findMin fm2

are unpacked to the following functions on top level
glueBal2GlueBal0 yzy yzz fm1 fm2 True = mkBalBranch (glueBal2Mid_key1 yzy yzz) (glueBal2Mid_elt1 yzy yzz) (deleteMax fm1fm2

glueBal2Mid_elt10 yzy yzz (zx,mid_elt1) = mid_elt1

glueBal2Mid_key20 yzy yzz (mid_key2,vuu) = mid_key2

glueBal2Mid_elt20 yzy yzz (zy,mid_elt2) = mid_elt2

glueBal2GlueBal1 yzy yzz fm1 fm2 True = mkBalBranch (glueBal2Mid_key2 yzy yzz) (glueBal2Mid_elt2 yzy yzzfm1 (deleteMin fm2)
glueBal2GlueBal1 yzy yzz fm1 fm2 False = glueBal2GlueBal0 yzy yzz fm1 fm2 otherwise

glueBal2Mid_elt1 yzy yzz = glueBal2Mid_elt10 yzy yzz (glueBal2Vv2 yzy yzz)

glueBal2Mid_elt2 yzy yzz = glueBal2Mid_elt20 yzy yzz (glueBal2Vv3 yzy yzz)

glueBal2Vv2 yzy yzz = findMax yzy

glueBal2Mid_key2 yzy yzz = glueBal2Mid_key20 yzy yzz (glueBal2Vv3 yzy yzz)

glueBal2Mid_key10 yzy yzz (mid_key1,zz) = mid_key1

glueBal2Vv3 yzy yzz = findMin yzz

glueBal2Mid_key1 yzy yzz = glueBal2Mid_key10 yzy yzz (glueBal2Vv2 yzy yzz)

The bindings of the following Let/Where expression
mkBalBranch5 key elt fm_L fm_R (size_l + size_r < 2)
where 
double_L fm_l (Branch key_r elt_r yx (Branch key_rl elt_rl yy fm_rll fm_rlrfm_rr) = mkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l xy fm_ll (Branch key_lr elt_lr xz fm_lrl fm_lrr)) fm_r = mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
mkBalBranch0 fm_L fm_R (Branch yz zu zv fm_rl fm_rr) = mkBalBranch02 fm_L fm_R (Branch yz zu zv fm_rl fm_rr)
mkBalBranch00 fm_L fm_R yz zu zv fm_rl fm_rr True = double_L fm_L fm_R
mkBalBranch01 fm_L fm_R yz zu zv fm_rl fm_rr True = single_L fm_L fm_R
mkBalBranch01 fm_L fm_R yz zu zv fm_rl fm_rr False = mkBalBranch00 fm_L fm_R yz zu zv fm_rl fm_rr otherwise
mkBalBranch02 fm_L fm_R (Branch yz zu zv fm_rl fm_rr) = mkBalBranch01 fm_L fm_R yz zu zv fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr)
mkBalBranch1 fm_L fm_R (Branch yu yv yw fm_ll fm_lr) = mkBalBranch12 fm_L fm_R (Branch yu yv yw fm_ll fm_lr)
mkBalBranch10 fm_L fm_R yu yv yw fm_ll fm_lr True = double_R fm_L fm_R
mkBalBranch11 fm_L fm_R yu yv yw fm_ll fm_lr True = single_R fm_L fm_R
mkBalBranch11 fm_L fm_R yu yv yw fm_ll fm_lr False = mkBalBranch10 fm_L fm_R yu yv yw fm_ll fm_lr otherwise
mkBalBranch12 fm_L fm_R (Branch yu yv yw fm_ll fm_lr) = mkBalBranch11 fm_L fm_R yu yv yw fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll)
mkBalBranch2 key elt fm_L fm_R True = mkBranch 2 key elt fm_L fm_R
mkBalBranch3 key elt fm_L fm_R True = mkBalBranch1 fm_L fm_R fm_L
mkBalBranch3 key elt fm_L fm_R False = mkBalBranch2 key elt fm_L fm_R otherwise
mkBalBranch4 key elt fm_L fm_R True = mkBalBranch0 fm_L fm_R fm_R
mkBalBranch4 key elt fm_L fm_R False = mkBalBranch3 key elt fm_L fm_R (size_l > sIZE_RATIO * size_r)
mkBalBranch5 key elt fm_L fm_R True = mkBranch 1 key elt fm_L fm_R
mkBalBranch5 key elt fm_L fm_R False = mkBalBranch4 key elt fm_L fm_R (size_r > sIZE_RATIO * size_l)
single_L fm_l (Branch key_r elt_r zw fm_rl fm_rr) = mkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rlfm_rr
single_R (Branch key_l elt_l xx fm_ll fm_lrfm_r = mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l  = sizeFM fm_L
size_r  = sizeFM fm_R

are unpacked to the following functions on top level
mkBalBranch6Double_R zuu zuv zuw zux (Branch key_l elt_l xy fm_ll (Branch key_lr elt_lr xz fm_lrl fm_lrr)) fm_r = mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 zuu zuv fm_lrr fm_r)

mkBalBranch6MkBalBranch11 zuu zuv zuw zux fm_L fm_R yu yv yw fm_ll fm_lr True = mkBalBranch6Single_R zuu zuv zuw zux fm_L fm_R
mkBalBranch6MkBalBranch11 zuu zuv zuw zux fm_L fm_R yu yv yw fm_ll fm_lr False = mkBalBranch6MkBalBranch10 zuu zuv zuw zux fm_L fm_R yu yv yw fm_ll fm_lr otherwise

mkBalBranch6MkBalBranch3 zuu zuv zuw zux key elt fm_L fm_R True = mkBalBranch6MkBalBranch1 zuu zuv zuw zux fm_L fm_R fm_L
mkBalBranch6MkBalBranch3 zuu zuv zuw zux key elt fm_L fm_R False = mkBalBranch6MkBalBranch2 zuu zuv zuw zux key elt fm_L fm_R otherwise

mkBalBranch6MkBalBranch12 zuu zuv zuw zux fm_L fm_R (Branch yu yv yw fm_ll fm_lr) = mkBalBranch6MkBalBranch11 zuu zuv zuw zux fm_L fm_R yu yv yw fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll)

mkBalBranch6Size_r zuu zuv zuw zux = sizeFM zuw

mkBalBranch6Single_R zuu zuv zuw zux (Branch key_l elt_l xx fm_ll fm_lrfm_r = mkBranch 8 key_l elt_l fm_ll (mkBranch 9 zuu zuv fm_lr fm_r)

mkBalBranch6Size_l zuu zuv zuw zux = sizeFM zux

mkBalBranch6MkBalBranch0 zuu zuv zuw zux fm_L fm_R (Branch yz zu zv fm_rl fm_rr) = mkBalBranch6MkBalBranch02 zuu zuv zuw zux fm_L fm_R (Branch yz zu zv fm_rl fm_rr)

mkBalBranch6MkBalBranch5 zuu zuv zuw zux key elt fm_L fm_R True = mkBranch 1 key elt fm_L fm_R
mkBalBranch6MkBalBranch5 zuu zuv zuw zux key elt fm_L fm_R False = mkBalBranch6MkBalBranch4 zuu zuv zuw zux key elt fm_L fm_R (mkBalBranch6Size_r zuu zuv zuw zux > sIZE_RATIO * mkBalBranch6Size_l zuu zuv zuw zux)

mkBalBranch6MkBalBranch01 zuu zuv zuw zux fm_L fm_R yz zu zv fm_rl fm_rr True = mkBalBranch6Single_L zuu zuv zuw zux fm_L fm_R
mkBalBranch6MkBalBranch01 zuu zuv zuw zux fm_L fm_R yz zu zv fm_rl fm_rr False = mkBalBranch6MkBalBranch00 zuu zuv zuw zux fm_L fm_R yz zu zv fm_rl fm_rr otherwise

mkBalBranch6MkBalBranch00 zuu zuv zuw zux fm_L fm_R yz zu zv fm_rl fm_rr True = mkBalBranch6Double_L zuu zuv zuw zux fm_L fm_R

mkBalBranch6Single_L zuu zuv zuw zux fm_l (Branch key_r elt_r zw fm_rl fm_rr) = mkBranch 3 key_r elt_r (mkBranch 4 zuu zuv fm_l fm_rlfm_rr

mkBalBranch6MkBalBranch02 zuu zuv zuw zux fm_L fm_R (Branch yz zu zv fm_rl fm_rr) = mkBalBranch6MkBalBranch01 zuu zuv zuw zux fm_L fm_R yz zu zv fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr)

mkBalBranch6MkBalBranch1 zuu zuv zuw zux fm_L fm_R (Branch yu yv yw fm_ll fm_lr) = mkBalBranch6MkBalBranch12 zuu zuv zuw zux fm_L fm_R (Branch yu yv yw fm_ll fm_lr)

mkBalBranch6MkBalBranch4 zuu zuv zuw zux key elt fm_L fm_R True = mkBalBranch6MkBalBranch0 zuu zuv zuw zux fm_L fm_R fm_R
mkBalBranch6MkBalBranch4 zuu zuv zuw zux key elt fm_L fm_R False = mkBalBranch6MkBalBranch3 zuu zuv zuw zux key elt fm_L fm_R (mkBalBranch6Size_l zuu zuv zuw zux > sIZE_RATIO * mkBalBranch6Size_r zuu zuv zuw zux)

mkBalBranch6MkBalBranch2 zuu zuv zuw zux key elt fm_L fm_R True = mkBranch 2 key elt fm_L fm_R

mkBalBranch6MkBalBranch10 zuu zuv zuw zux fm_L fm_R yu yv yw fm_ll fm_lr True = mkBalBranch6Double_R zuu zuv zuw zux fm_L fm_R

mkBalBranch6Double_L zuu zuv zuw zux fm_l (Branch key_r elt_r yx (Branch key_rl elt_rl yy fm_rll fm_rlrfm_rr) = mkBranch 5 key_rl elt_rl (mkBranch 6 zuu zuv fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)

The bindings of the following Let/Where expression
glueVBal2 vy vz wu wv ww wy wz xu xv xw (sIZE_RATIO * size_l < size_r)
where 
glueVBal0 vy vz wu wv ww wy wz xu xv xw True = glueBal (Branch vy vz wu wv ww) (Branch wy wz xu xv xw)
glueVBal1 vy vz wu wv ww wy wz xu xv xw True = mkBalBranch vy vz wv (glueVBal ww (Branch wy wz xu xv xw))
glueVBal1 vy vz wu wv ww wy wz xu xv xw False = glueVBal0 vy vz wu wv ww wy wz xu xv xw otherwise
glueVBal2 vy vz wu wv ww wy wz xu xv xw True = mkBalBranch wy wz (glueVBal (Branch vy vz wu wv wwxvxw
glueVBal2 vy vz wu wv ww wy wz xu xv xw False = glueVBal1 vy vz wu wv ww wy wz xu xv xw (sIZE_RATIO * size_r < size_l)
size_l  = sizeFM (Branch vy vz wu wv ww)
size_r  = sizeFM (Branch wy wz xu xv xw)

are unpacked to the following functions on top level
glueVBal3GlueVBal1 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv vy vz wu wv ww wy wz xu xv xw True = mkBalBranch vy vz wv (glueVBal ww (Branch wy wz xu xv xw))
glueVBal3GlueVBal1 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv vy vz wu wv ww wy wz xu xv xw False = glueVBal3GlueVBal0 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv vy vz wu wv ww wy wz xu xv xw otherwise

glueVBal3Size_r zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv = sizeFM (Branch zuy zuz zvu zvv zvw)

glueVBal3GlueVBal0 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv vy vz wu wv ww wy wz xu xv xw True = glueBal (Branch vy vz wu wv ww) (Branch wy wz xu xv xw)

glueVBal3GlueVBal2 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv vy vz wu wv ww wy wz xu xv xw True = mkBalBranch wy wz (glueVBal (Branch vy vz wu wv wwxvxw
glueVBal3GlueVBal2 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv vy vz wu wv ww wy wz xu xv xw False = glueVBal3GlueVBal1 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv vy vz wu wv ww wy wz xu xv xw (sIZE_RATIO * glueVBal3Size_r zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv < glueVBal3Size_l zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv)

glueVBal3Size_l zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv = sizeFM (Branch zvx zvy zvz zwu zwv)

The bindings of the following Let/Where expression
let 
result  = Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
in result
where 
balance_ok  = True
left_ok  = left_ok0 fm_l key fm_l
left_ok0 fm_l key EmptyFM = True
left_ok0 fm_l key (Branch left_key vuw vux vuy vuz) = 
let 
biggest_left_key  = fst (findMax fm_l)
in biggest_left_key < key
left_size  = sizeFM fm_l
right_ok  = right_ok0 fm_r key fm_r
right_ok0 fm_r key EmptyFM = True
right_ok0 fm_r key (Branch right_key vvu vvv vvw vvx) = 
let 
smallest_right_key  = fst (findMin fm_r)
in key < smallest_right_key
right_size  = sizeFM fm_r
unbox x = x

are unpacked to the following functions on top level
mkBranchUnbox zww zwx zwy x = x

mkBranchRight_ok zww zwx zwy = mkBranchRight_ok0 zww zwx zwy zww zwx zww

mkBranchLeft_ok zww zwx zwy = mkBranchLeft_ok0 zww zwx zwy zwy zwx zwy

mkBranchBalance_ok zww zwx zwy = True

mkBranchLeft_size zww zwx zwy = sizeFM zwy

mkBranchRight_ok0 zww zwx zwy fm_r key EmptyFM = True
mkBranchRight_ok0 zww zwx zwy fm_r key (Branch right_key vvu vvv vvw vvx) = key < mkBranchRight_ok0Smallest_right_key fm_r

mkBranchRight_size zww zwx zwy = sizeFM zww

mkBranchLeft_ok0 zww zwx zwy fm_l key EmptyFM = True
mkBranchLeft_ok0 zww zwx zwy fm_l key (Branch left_key vuw vux vuy vuz) = mkBranchLeft_ok0Biggest_left_key fm_l < key

The bindings of the following Let/Where expression
let 
result  = Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
in result

are unpacked to the following functions on top level
mkBranchResult zwz zxu zxv zxw = Branch zwz zxu (mkBranchUnbox zxv zwz zxw (1 + mkBranchLeft_size zxv zwz zxw + mkBranchRight_size zxv zwz zxw)) zxw zxv

The bindings of the following Let/Where expression
mkVBalBranch2 key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx (sIZE_RATIO * size_l < size_r)
where 
mkVBalBranch0 key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx True = mkBranch 13 key elt (Branch vxz vyu vyv vyw vyx) (Branch vyz vzu vzv vzw vzx)
mkVBalBranch1 key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx True = mkBalBranch vxz vyu vyw (mkVBalBranch key elt vyx (Branch vyz vzu vzv vzw vzx))
mkVBalBranch1 key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx False = mkVBalBranch0 key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx otherwise
mkVBalBranch2 key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx True = mkBalBranch vyz vzu (mkVBalBranch key elt (Branch vxz vyu vyv vyw vyxvzwvzx
mkVBalBranch2 key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx False = mkVBalBranch1 key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx (sIZE_RATIO * size_r < size_l)
size_l  = sizeFM (Branch vxz vyu vyv vyw vyx)
size_r  = sizeFM (Branch vyz vzu vzv vzw vzx)

are unpacked to the following functions on top level
mkVBalBranch3MkVBalBranch0 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx True = mkBranch 13 key elt (Branch vxz vyu vyv vyw vyx) (Branch vyz vzu vzv vzw vzx)

mkVBalBranch3MkVBalBranch1 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx True = mkBalBranch vxz vyu vyw (mkVBalBranch key elt vyx (Branch vyz vzu vzv vzw vzx))
mkVBalBranch3MkVBalBranch1 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx False = mkVBalBranch3MkVBalBranch0 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx otherwise

mkVBalBranch3Size_l zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu = sizeFM (Branch zxx zxy zxz zyu zyv)

mkVBalBranch3MkVBalBranch2 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx True = mkBalBranch vyz vzu (mkVBalBranch key elt (Branch vxz vyu vyv vyw vyxvzwvzx
mkVBalBranch3MkVBalBranch2 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx False = mkVBalBranch3MkVBalBranch1 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx (sIZE_RATIO * mkVBalBranch3Size_r zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu < mkVBalBranch3Size_l zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu)

mkVBalBranch3Size_r zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu = sizeFM (Branch zyw zyx zyy zyz zzu)

The bindings of the following Let/Where expression
let 
smallest_right_key  = fst (findMin fm_r)
in key < smallest_right_key

are unpacked to the following functions on top level
mkBranchRight_ok0Smallest_right_key zzv = fst (findMin zzv)

The bindings of the following Let/Where expression
let 
biggest_left_key  = fst (findMax fm_l)
in biggest_left_key < key

are unpacked to the following functions on top level
mkBranchLeft_ok0Biggest_left_key zzw = fst (findMax zzw)

The bindings of the following Let/Where expression
reduce1 x y (y == 0)
where 
d  = gcd x y
reduce0 x y True = x `quot` d :% (y `quot` d)
reduce1 x y True = error []
reduce1 x y False = reduce0 x y otherwise

are unpacked to the following functions on top level
reduce2D zzx zzy = gcd zzx zzy

reduce2Reduce0 zzx zzy x y True = x `quot` reduce2D zzx zzy :% (y `quot` reduce2D zzx zzy)

reduce2Reduce1 zzx zzy x y True = error []
reduce2Reduce1 zzx zzy x y False = reduce2Reduce0 zzx zzy x y otherwise

The bindings of the following Let/Where expression
gcd' (abs x) (abs y)
where 
gcd' x ywy = gcd'2 x ywy
gcd' x y = gcd'0 x y
gcd'0 x y = gcd' y (x `rem` y)
gcd'1 True x ywy = x
gcd'1 ywz yxu yxv = gcd'0 yxu yxv
gcd'2 x ywy = gcd'1 (ywy == 0) x ywy
gcd'2 yxw yxx = gcd'0 yxw yxx

are unpacked to the following functions on top level
gcd0Gcd'2 x ywy = gcd0Gcd'1 (ywy == 0) x ywy
gcd0Gcd'2 yxw yxx = gcd0Gcd'0 yxw yxx

gcd0Gcd'1 True x ywy = x
gcd0Gcd'1 ywz yxu yxv = gcd0Gcd'0 yxu yxv

gcd0Gcd' x ywy = gcd0Gcd'2 x ywy
gcd0Gcd' x y = gcd0Gcd'0 x y

gcd0Gcd'0 x y = gcd0Gcd' y (x `rem` y)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
HASKELL
                          ↳ NumRed

mainModule FiniteMap
  ((intersectFM :: Ord a => FiniteMap (Maybe a) b  ->  FiniteMap (Maybe a) b  ->  FiniteMap (Maybe a) b) :: Ord a => FiniteMap (Maybe a) b  ->  FiniteMap (Maybe a) b  ->  FiniteMap (Maybe a) b)

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap b a = EmptyFM  | Branch b a Int (FiniteMap b a) (FiniteMap b a


  instance (Eq a, Eq b) => Eq (FiniteMap b a) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  addToFM :: Ord b => FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a
addToFM fm key elt addToFM_C addToFM0 fm key elt

  
addToFM0 old new new

  addToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a
addToFM_C combiner EmptyFM key elt addToFM_C4 combiner EmptyFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt addToFM_C3 combiner (Branch key elt size fm_l fm_r) new_key new_elt

  
addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt True Branch new_key (combiner elt new_elt) size fm_l fm_r

  
addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt True mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt False addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt otherwise

  
addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt True mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt False addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt (new_key > key)

  
addToFM_C3 combiner (Branch key elt size fm_l fm_rnew_key new_elt addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt (new_key < key)

  
addToFM_C4 combiner EmptyFM key elt unitFM key elt
addToFM_C4 xxv xxw xxx xxy addToFM_C3 xxv xxw xxx xxy

  deleteMax :: Ord b => FiniteMap b a  ->  FiniteMap b a
deleteMax (Branch key elt vxw fm_l EmptyFMfm_l
deleteMax (Branch key elt vxx fm_l fm_rmkBalBranch key elt fm_l (deleteMax fm_r)

  deleteMin :: Ord a => FiniteMap a b  ->  FiniteMap a b
deleteMin (Branch key elt wux EmptyFM fm_rfm_r
deleteMin (Branch key elt wuy fm_l fm_rmkBalBranch key elt (deleteMin fm_l) fm_r

  emptyFM :: FiniteMap a b
emptyFM EmptyFM

  findMax :: FiniteMap b a  ->  (b,a)
findMax (Branch key elt vzy vzz EmptyFM(key,elt)
findMax (Branch key elt wuu wuv fm_rfindMax fm_r

  findMin :: FiniteMap b a  ->  (b,a)
findMin (Branch key elt vwu EmptyFM vwv(key,elt)
findMin (Branch key elt vww fm_l vwxfindMin fm_l

  fmToList :: FiniteMap b a  ->  [(b,a)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (c  ->  a  ->  b  ->  b ->  b  ->  FiniteMap c a  ->  b
foldFM k z EmptyFM z
foldFM k z (Branch key elt vvy fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  glueBal :: Ord a => FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
glueBal EmptyFM fm2 glueBal4 EmptyFM fm2
glueBal fm1 EmptyFM glueBal3 fm1 EmptyFM
glueBal fm1 fm2 glueBal2 fm1 fm2

  
glueBal2 fm1 fm2 glueBal2GlueBal1 fm1 fm2 fm1 fm2 (sizeFM fm2 > sizeFM fm1)

  
glueBal2GlueBal0 yzy yzz fm1 fm2 True mkBalBranch (glueBal2Mid_key1 yzy yzz) (glueBal2Mid_elt1 yzy yzz) (deleteMax fm1) fm2

  
glueBal2GlueBal1 yzy yzz fm1 fm2 True mkBalBranch (glueBal2Mid_key2 yzy yzz) (glueBal2Mid_elt2 yzy yzz) fm1 (deleteMin fm2)
glueBal2GlueBal1 yzy yzz fm1 fm2 False glueBal2GlueBal0 yzy yzz fm1 fm2 otherwise

  
glueBal2Mid_elt1 yzy yzz glueBal2Mid_elt10 yzy yzz (glueBal2Vv2 yzy yzz)

  
glueBal2Mid_elt10 yzy yzz (zx,mid_elt1mid_elt1

  
glueBal2Mid_elt2 yzy yzz glueBal2Mid_elt20 yzy yzz (glueBal2Vv3 yzy yzz)

  
glueBal2Mid_elt20 yzy yzz (zy,mid_elt2mid_elt2

  
glueBal2Mid_key1 yzy yzz glueBal2Mid_key10 yzy yzz (glueBal2Vv2 yzy yzz)

  
glueBal2Mid_key10 yzy yzz (mid_key1,zzmid_key1

  
glueBal2Mid_key2 yzy yzz glueBal2Mid_key20 yzy yzz (glueBal2Vv3 yzy yzz)

  
glueBal2Mid_key20 yzy yzz (mid_key2,vuumid_key2

  
glueBal2Vv2 yzy yzz findMax yzy

  
glueBal2Vv3 yzy yzz findMin yzz

  
glueBal3 fm1 EmptyFM fm1
glueBal3 xwu xwv glueBal2 xwu xwv

  
glueBal4 EmptyFM fm2 fm2
glueBal4 xwx xwy glueBal3 xwx xwy

  glueVBal :: Ord a => FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
glueVBal EmptyFM fm2 glueVBal5 EmptyFM fm2
glueVBal fm1 EmptyFM glueVBal4 fm1 EmptyFM
glueVBal (Branch vy vz wu wv ww) (Branch wy wz xu xv xwglueVBal3 (Branch vy vz wu wv ww) (Branch wy wz xu xv xw)

  
glueVBal3 (Branch vy vz wu wv ww) (Branch wy wz xu xv xwglueVBal3GlueVBal2 wy wz xu xv xw vy vz wu wv ww vy vz wu wv ww wy wz xu xv xw (sIZE_RATIO * glueVBal3Size_l wy wz xu xv xw vy vz wu wv ww < glueVBal3Size_r wy wz xu xv xw vy vz wu wv ww)

  
glueVBal3GlueVBal0 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv vy vz wu wv ww wy wz xu xv xw True glueBal (Branch vy vz wu wv ww) (Branch wy wz xu xv xw)

  
glueVBal3GlueVBal1 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv vy vz wu wv ww wy wz xu xv xw True mkBalBranch vy vz wv (glueVBal ww (Branch wy wz xu xv xw))
glueVBal3GlueVBal1 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv vy vz wu wv ww wy wz xu xv xw False glueVBal3GlueVBal0 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv vy vz wu wv ww wy wz xu xv xw otherwise

  
glueVBal3GlueVBal2 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv vy vz wu wv ww wy wz xu xv xw True mkBalBranch wy wz (glueVBal (Branch vy vz wu wv ww) xv) xw
glueVBal3GlueVBal2 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv vy vz wu wv ww wy wz xu xv xw False glueVBal3GlueVBal1 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv vy vz wu wv ww wy wz xu xv xw (sIZE_RATIO * glueVBal3Size_r zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv < glueVBal3Size_l zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv)

  
glueVBal3Size_l zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv sizeFM (Branch zvx zvy zvz zwu zwv)

  
glueVBal3Size_r zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv sizeFM (Branch zuy zuz zvu zvv zvw)

  
glueVBal4 fm1 EmptyFM fm1
glueVBal4 xuy xuz glueVBal3 xuy xuz

  
glueVBal5 EmptyFM fm2 fm2
glueVBal5 xvv xvw glueVBal4 xvv xvw

  intersectFM :: Ord a => FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
intersectFM fm1 fm2 intersectFM_C intersectFM0 fm1 fm2

  
intersectFM0 left right right

  intersectFM_C :: Ord a => (b  ->  d  ->  c ->  FiniteMap a b  ->  FiniteMap a d  ->  FiniteMap a c
intersectFM_C combiner fm1 EmptyFM intersectFM_C4 combiner fm1 EmptyFM
intersectFM_C combiner EmptyFM fm2 intersectFM_C3 combiner EmptyFM fm2
intersectFM_C combiner fm1 (Branch split_key elt2 vuv left rightintersectFM_C2 combiner fm1 (Branch split_key elt2 vuv left right)

  
intersectFM_C2 combiner fm1 (Branch split_key elt2 vuv left rightintersectFM_C2IntersectFM_C1 fm1 split_key combiner fm1 split_key elt2 vuv left right (Maybe.isJust (intersectFM_C2Maybe_elt1 fm1 split_key))

  
intersectFM_C2Elt1 yzw yzx intersectFM_C2Elt10 yzw yzx (intersectFM_C2Vv1 yzw yzx)

  
intersectFM_C2Elt10 yzw yzx (Just elt1elt1

  
intersectFM_C2Gts yzw yzx splitGT yzw yzx

  
intersectFM_C2IntersectFM_C0 yzw yzx combiner fm1 split_key elt2 vuv left right True glueVBal (intersectFM_C combiner (intersectFM_C2Lts yzw yzx) left) (intersectFM_C combiner (intersectFM_C2Gts yzw yzx) right)

  
intersectFM_C2IntersectFM_C1 yzw yzx combiner fm1 split_key elt2 vuv left right True mkVBalBranch split_key (combiner (intersectFM_C2Elt1 yzw yzx) elt2) (intersectFM_C combiner (intersectFM_C2Lts yzw yzx) left) (intersectFM_C combiner (intersectFM_C2Gts yzw yzx) right)
intersectFM_C2IntersectFM_C1 yzw yzx combiner fm1 split_key elt2 vuv left right False intersectFM_C2IntersectFM_C0 yzw yzx combiner fm1 split_key elt2 vuv left right otherwise

  
intersectFM_C2Lts yzw yzx splitLT yzw yzx

  
intersectFM_C2Maybe_elt1 yzw yzx lookupFM yzw yzx

  
intersectFM_C2Vv1 yzw yzx intersectFM_C2Maybe_elt1 yzw yzx

  
intersectFM_C3 combiner EmptyFM fm2 emptyFM
intersectFM_C3 xyv xyw xyx intersectFM_C2 xyv xyw xyx

  
intersectFM_C4 combiner fm1 EmptyFM emptyFM
intersectFM_C4 xyz xzu xzv intersectFM_C3 xyz xzu xzv

  lookupFM :: Ord b => FiniteMap b a  ->  b  ->  Maybe a
lookupFM EmptyFM key lookupFM4 EmptyFM key
lookupFM (Branch key elt wuw fm_l fm_rkey_to_find lookupFM3 (Branch key elt wuw fm_l fm_r) key_to_find

  
lookupFM0 key elt wuw fm_l fm_r key_to_find True Just elt

  
lookupFM1 key elt wuw fm_l fm_r key_to_find True lookupFM fm_r key_to_find
lookupFM1 key elt wuw fm_l fm_r key_to_find False lookupFM0 key elt wuw fm_l fm_r key_to_find otherwise

  
lookupFM2 key elt wuw fm_l fm_r key_to_find True lookupFM fm_l key_to_find
lookupFM2 key elt wuw fm_l fm_r key_to_find False lookupFM1 key elt wuw fm_l fm_r key_to_find (key_to_find > key)

  
lookupFM3 (Branch key elt wuw fm_l fm_rkey_to_find lookupFM2 key elt wuw fm_l fm_r key_to_find (key_to_find < key)

  
lookupFM4 EmptyFM key Nothing
lookupFM4 yww ywx lookupFM3 yww ywx

  mkBalBranch :: Ord a => a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkBalBranch key elt fm_L fm_R mkBalBranch6 key elt fm_L fm_R

  
mkBalBranch6 key elt fm_L fm_R mkBalBranch6MkBalBranch5 key elt fm_R fm_L key elt fm_L fm_R (mkBalBranch6Size_l key elt fm_R fm_L + mkBalBranch6Size_r key elt fm_R fm_L < 2)

  
mkBalBranch6Double_L zuu zuv zuw zux fm_l (Branch key_r elt_r yx (Branch key_rl elt_rl yy fm_rll fm_rlr) fm_rrmkBranch 5 key_rl elt_rl (mkBranch 6 zuu zuv fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)

  
mkBalBranch6Double_R zuu zuv zuw zux (Branch key_l elt_l xy fm_ll (Branch key_lr elt_lr xz fm_lrl fm_lrr)) fm_r mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 zuu zuv fm_lrr fm_r)

  
mkBalBranch6MkBalBranch0 zuu zuv zuw zux fm_L fm_R (Branch yz zu zv fm_rl fm_rrmkBalBranch6MkBalBranch02 zuu zuv zuw zux fm_L fm_R (Branch yz zu zv fm_rl fm_rr)

  
mkBalBranch6MkBalBranch00 zuu zuv zuw zux fm_L fm_R yz zu zv fm_rl fm_rr True mkBalBranch6Double_L zuu zuv zuw zux fm_L fm_R

  
mkBalBranch6MkBalBranch01 zuu zuv zuw zux fm_L fm_R yz zu zv fm_rl fm_rr True mkBalBranch6Single_L zuu zuv zuw zux fm_L fm_R
mkBalBranch6MkBalBranch01 zuu zuv zuw zux fm_L fm_R yz zu zv fm_rl fm_rr False mkBalBranch6MkBalBranch00 zuu zuv zuw zux fm_L fm_R yz zu zv fm_rl fm_rr otherwise

  
mkBalBranch6MkBalBranch02 zuu zuv zuw zux fm_L fm_R (Branch yz zu zv fm_rl fm_rrmkBalBranch6MkBalBranch01 zuu zuv zuw zux fm_L fm_R yz zu zv fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr)

  
mkBalBranch6MkBalBranch1 zuu zuv zuw zux fm_L fm_R (Branch yu yv yw fm_ll fm_lrmkBalBranch6MkBalBranch12 zuu zuv zuw zux fm_L fm_R (Branch yu yv yw fm_ll fm_lr)

  
mkBalBranch6MkBalBranch10 zuu zuv zuw zux fm_L fm_R yu yv yw fm_ll fm_lr True mkBalBranch6Double_R zuu zuv zuw zux fm_L fm_R

  
mkBalBranch6MkBalBranch11 zuu zuv zuw zux fm_L fm_R yu yv yw fm_ll fm_lr True mkBalBranch6Single_R zuu zuv zuw zux fm_L fm_R
mkBalBranch6MkBalBranch11 zuu zuv zuw zux fm_L fm_R yu yv yw fm_ll fm_lr False mkBalBranch6MkBalBranch10 zuu zuv zuw zux fm_L fm_R yu yv yw fm_ll fm_lr otherwise

  
mkBalBranch6MkBalBranch12 zuu zuv zuw zux fm_L fm_R (Branch yu yv yw fm_ll fm_lrmkBalBranch6MkBalBranch11 zuu zuv zuw zux fm_L fm_R yu yv yw fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll)

  
mkBalBranch6MkBalBranch2 zuu zuv zuw zux key elt fm_L fm_R True mkBranch 2 key elt fm_L fm_R

  
mkBalBranch6MkBalBranch3 zuu zuv zuw zux key elt fm_L fm_R True mkBalBranch6MkBalBranch1 zuu zuv zuw zux fm_L fm_R fm_L
mkBalBranch6MkBalBranch3 zuu zuv zuw zux key elt fm_L fm_R False mkBalBranch6MkBalBranch2 zuu zuv zuw zux key elt fm_L fm_R otherwise

  
mkBalBranch6MkBalBranch4 zuu zuv zuw zux key elt fm_L fm_R True mkBalBranch6MkBalBranch0 zuu zuv zuw zux fm_L fm_R fm_R
mkBalBranch6MkBalBranch4 zuu zuv zuw zux key elt fm_L fm_R False mkBalBranch6MkBalBranch3 zuu zuv zuw zux key elt fm_L fm_R (mkBalBranch6Size_l zuu zuv zuw zux > sIZE_RATIO * mkBalBranch6Size_r zuu zuv zuw zux)

  
mkBalBranch6MkBalBranch5 zuu zuv zuw zux key elt fm_L fm_R True mkBranch 1 key elt fm_L fm_R
mkBalBranch6MkBalBranch5 zuu zuv zuw zux key elt fm_L fm_R False mkBalBranch6MkBalBranch4 zuu zuv zuw zux key elt fm_L fm_R (mkBalBranch6Size_r zuu zuv zuw zux > sIZE_RATIO * mkBalBranch6Size_l zuu zuv zuw zux)

  
mkBalBranch6Single_L zuu zuv zuw zux fm_l (Branch key_r elt_r zw fm_rl fm_rrmkBranch 3 key_r elt_r (mkBranch 4 zuu zuv fm_l fm_rl) fm_rr

  
mkBalBranch6Single_R zuu zuv zuw zux (Branch key_l elt_l xx fm_ll fm_lrfm_r mkBranch 8 key_l elt_l fm_ll (mkBranch 9 zuu zuv fm_lr fm_r)

  
mkBalBranch6Size_l zuu zuv zuw zux sizeFM zux

  
mkBalBranch6Size_r zuu zuv zuw zux sizeFM zuw

  mkBranch :: Ord b => Int  ->  b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkBranch which key elt fm_l fm_r mkBranchResult key elt fm_r fm_l

  
mkBranchBalance_ok zww zwx zwy True

  
mkBranchLeft_ok zww zwx zwy mkBranchLeft_ok0 zww zwx zwy zwy zwx zwy

  
mkBranchLeft_ok0 zww zwx zwy fm_l key EmptyFM True
mkBranchLeft_ok0 zww zwx zwy fm_l key (Branch left_key vuw vux vuy vuzmkBranchLeft_ok0Biggest_left_key fm_l < key

  
mkBranchLeft_ok0Biggest_left_key zzw fst (findMax zzw)

  
mkBranchLeft_size zww zwx zwy sizeFM zwy

  
mkBranchResult zwz zxu zxv zxw Branch zwz zxu (mkBranchUnbox zxv zwz zxw (1 + mkBranchLeft_size zxv zwz zxw + mkBranchRight_size zxv zwz zxw)) zxw zxv

  
mkBranchRight_ok zww zwx zwy mkBranchRight_ok0 zww zwx zwy zww zwx zww

  
mkBranchRight_ok0 zww zwx zwy fm_r key EmptyFM True
mkBranchRight_ok0 zww zwx zwy fm_r key (Branch right_key vvu vvv vvw vvxkey < mkBranchRight_ok0Smallest_right_key fm_r

  
mkBranchRight_ok0Smallest_right_key zzv fst (findMin zzv)

  
mkBranchRight_size zww zwx zwy sizeFM zww

  mkBranchUnbox :: Ord a =>  ->  (FiniteMap a b) ( ->  a ( ->  (FiniteMap a b) (Int  ->  Int)))
mkBranchUnbox zww zwx zwy x x

  mkVBalBranch :: Ord a => a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkVBalBranch key elt EmptyFM fm_r mkVBalBranch5 key elt EmptyFM fm_r
mkVBalBranch key elt fm_l EmptyFM mkVBalBranch4 key elt fm_l EmptyFM
mkVBalBranch key elt (Branch vxz vyu vyv vyw vyx) (Branch vyz vzu vzv vzw vzxmkVBalBranch3 key elt (Branch vxz vyu vyv vyw vyx) (Branch vyz vzu vzv vzw vzx)

  
mkVBalBranch3 key elt (Branch vxz vyu vyv vyw vyx) (Branch vyz vzu vzv vzw vzxmkVBalBranch3MkVBalBranch2 vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx (sIZE_RATIO * mkVBalBranch3Size_l vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx < mkVBalBranch3Size_r vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx)

  
mkVBalBranch3MkVBalBranch0 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx True mkBranch 13 key elt (Branch vxz vyu vyv vyw vyx) (Branch vyz vzu vzv vzw vzx)

  
mkVBalBranch3MkVBalBranch1 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx True mkBalBranch vxz vyu vyw (mkVBalBranch key elt vyx (Branch vyz vzu vzv vzw vzx))
mkVBalBranch3MkVBalBranch1 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx False mkVBalBranch3MkVBalBranch0 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx otherwise

  
mkVBalBranch3MkVBalBranch2 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx True mkBalBranch vyz vzu (mkVBalBranch key elt (Branch vxz vyu vyv vyw vyx) vzw) vzx
mkVBalBranch3MkVBalBranch2 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx False mkVBalBranch3MkVBalBranch1 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx (sIZE_RATIO * mkVBalBranch3Size_r zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu < mkVBalBranch3Size_l zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu)

  
mkVBalBranch3Size_l zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu sizeFM (Branch zxx zxy zxz zyu zyv)

  
mkVBalBranch3Size_r zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu sizeFM (Branch zyw zyx zyy zyz zzu)

  
mkVBalBranch4 key elt fm_l EmptyFM addToFM fm_l key elt
mkVBalBranch4 yux yuy yuz yvu mkVBalBranch3 yux yuy yuz yvu

  
mkVBalBranch5 key elt EmptyFM fm_r addToFM fm_r key elt
mkVBalBranch5 yvw yvx yvy yvz mkVBalBranch4 yvw yvx yvy yvz

  sIZE_RATIO :: Int
sIZE_RATIO 5

  sizeFM :: FiniteMap a b  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch vwy vwz size vxu vxvsize

  splitGT :: Ord b => FiniteMap b a  ->  b  ->  FiniteMap b a
splitGT EmptyFM split_key splitGT4 EmptyFM split_key
splitGT (Branch key elt vw fm_l fm_rsplit_key splitGT3 (Branch key elt vw fm_l fm_r) split_key

  
splitGT0 key elt vw fm_l fm_r split_key True fm_r

  
splitGT1 key elt vw fm_l fm_r split_key True mkVBalBranch key elt (splitGT fm_l split_key) fm_r
splitGT1 key elt vw fm_l fm_r split_key False splitGT0 key elt vw fm_l fm_r split_key otherwise

  
splitGT2 key elt vw fm_l fm_r split_key True splitGT fm_r split_key
splitGT2 key elt vw fm_l fm_r split_key False splitGT1 key elt vw fm_l fm_r split_key (split_key < key)

  
splitGT3 (Branch key elt vw fm_l fm_rsplit_key splitGT2 key elt vw fm_l fm_r split_key (split_key > key)

  
splitGT4 EmptyFM split_key emptyFM
splitGT4 wzz xuu splitGT3 wzz xuu

  splitLT :: Ord b => FiniteMap b a  ->  b  ->  FiniteMap b a
splitLT EmptyFM split_key splitLT4 EmptyFM split_key
splitLT (Branch key elt vvz fm_l fm_rsplit_key splitLT3 (Branch key elt vvz fm_l fm_r) split_key

  
splitLT0 key elt vvz fm_l fm_r split_key True fm_l

  
splitLT1 key elt vvz fm_l fm_r split_key True mkVBalBranch key elt fm_l (splitLT fm_r split_key)
splitLT1 key elt vvz fm_l fm_r split_key False splitLT0 key elt vvz fm_l fm_r split_key otherwise

  
splitLT2 key elt vvz fm_l fm_r split_key True splitLT fm_l split_key
splitLT2 key elt vvz fm_l fm_r split_key False splitLT1 key elt vvz fm_l fm_r split_key (split_key > key)

  
splitLT3 (Branch key elt vvz fm_l fm_rsplit_key splitLT2 key elt vvz fm_l fm_r split_key (split_key < key)

  
splitLT4 EmptyFM split_key emptyFM
splitLT4 xzy xzz splitLT3 xzy xzz

  unitFM :: a  ->  b  ->  FiniteMap a b
unitFM key elt Branch key elt 1 emptyFM emptyFM


module Maybe where
  import qualified FiniteMap
import qualified Prelude

  isJust :: Maybe a  ->  Bool
isJust Nothing False
isJust wuz True



Num Reduction: All numbers are transformed to thier corresponding representation with Pos, Neg, Succ and Zero.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
HASKELL
                              ↳ Narrow

mainModule FiniteMap
  (intersectFM :: Ord a => FiniteMap (Maybe a) b  ->  FiniteMap (Maybe a) b  ->  FiniteMap (Maybe a) b)

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap b a = EmptyFM  | Branch b a Int (FiniteMap b a) (FiniteMap b a


  instance (Eq a, Eq b) => Eq (FiniteMap b a) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  addToFM :: Ord a => FiniteMap a b  ->  a  ->  b  ->  FiniteMap a b
addToFM fm key elt addToFM_C addToFM0 fm key elt

  
addToFM0 old new new

  addToFM_C :: Ord a => (b  ->  b  ->  b ->  FiniteMap a b  ->  a  ->  b  ->  FiniteMap a b
addToFM_C combiner EmptyFM key elt addToFM_C4 combiner EmptyFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt addToFM_C3 combiner (Branch key elt size fm_l fm_r) new_key new_elt

  
addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt True Branch new_key (combiner elt new_elt) size fm_l fm_r

  
addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt True mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt False addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt otherwise

  
addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt True mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt False addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt (new_key > key)

  
addToFM_C3 combiner (Branch key elt size fm_l fm_rnew_key new_elt addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt (new_key < key)

  
addToFM_C4 combiner EmptyFM key elt unitFM key elt
addToFM_C4 xxv xxw xxx xxy addToFM_C3 xxv xxw xxx xxy

  deleteMax :: Ord b => FiniteMap b a  ->  FiniteMap b a
deleteMax (Branch key elt vxw fm_l EmptyFMfm_l
deleteMax (Branch key elt vxx fm_l fm_rmkBalBranch key elt fm_l (deleteMax fm_r)

  deleteMin :: Ord b => FiniteMap b a  ->  FiniteMap b a
deleteMin (Branch key elt wux EmptyFM fm_rfm_r
deleteMin (Branch key elt wuy fm_l fm_rmkBalBranch key elt (deleteMin fm_l) fm_r

  emptyFM :: FiniteMap b a
emptyFM EmptyFM

  findMax :: FiniteMap a b  ->  (a,b)
findMax (Branch key elt vzy vzz EmptyFM(key,elt)
findMax (Branch key elt wuu wuv fm_rfindMax fm_r

  findMin :: FiniteMap a b  ->  (a,b)
findMin (Branch key elt vwu EmptyFM vwv(key,elt)
findMin (Branch key elt vww fm_l vwxfindMin fm_l

  fmToList :: FiniteMap a b  ->  [(a,b)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (c  ->  b  ->  a  ->  a ->  a  ->  FiniteMap c b  ->  a
foldFM k z EmptyFM z
foldFM k z (Branch key elt vvy fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  glueBal :: Ord b => FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
glueBal EmptyFM fm2 glueBal4 EmptyFM fm2
glueBal fm1 EmptyFM glueBal3 fm1 EmptyFM
glueBal fm1 fm2 glueBal2 fm1 fm2

  
glueBal2 fm1 fm2 glueBal2GlueBal1 fm1 fm2 fm1 fm2 (sizeFM fm2 > sizeFM fm1)

  
glueBal2GlueBal0 yzy yzz fm1 fm2 True mkBalBranch (glueBal2Mid_key1 yzy yzz) (glueBal2Mid_elt1 yzy yzz) (deleteMax fm1) fm2

  
glueBal2GlueBal1 yzy yzz fm1 fm2 True mkBalBranch (glueBal2Mid_key2 yzy yzz) (glueBal2Mid_elt2 yzy yzz) fm1 (deleteMin fm2)
glueBal2GlueBal1 yzy yzz fm1 fm2 False glueBal2GlueBal0 yzy yzz fm1 fm2 otherwise

  
glueBal2Mid_elt1 yzy yzz glueBal2Mid_elt10 yzy yzz (glueBal2Vv2 yzy yzz)

  
glueBal2Mid_elt10 yzy yzz (zx,mid_elt1mid_elt1

  
glueBal2Mid_elt2 yzy yzz glueBal2Mid_elt20 yzy yzz (glueBal2Vv3 yzy yzz)

  
glueBal2Mid_elt20 yzy yzz (zy,mid_elt2mid_elt2

  
glueBal2Mid_key1 yzy yzz glueBal2Mid_key10 yzy yzz (glueBal2Vv2 yzy yzz)

  
glueBal2Mid_key10 yzy yzz (mid_key1,zzmid_key1

  
glueBal2Mid_key2 yzy yzz glueBal2Mid_key20 yzy yzz (glueBal2Vv3 yzy yzz)

  
glueBal2Mid_key20 yzy yzz (mid_key2,vuumid_key2

  
glueBal2Vv2 yzy yzz findMax yzy

  
glueBal2Vv3 yzy yzz findMin yzz

  
glueBal3 fm1 EmptyFM fm1
glueBal3 xwu xwv glueBal2 xwu xwv

  
glueBal4 EmptyFM fm2 fm2
glueBal4 xwx xwy glueBal3 xwx xwy

  glueVBal :: Ord a => FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
glueVBal EmptyFM fm2 glueVBal5 EmptyFM fm2
glueVBal fm1 EmptyFM glueVBal4 fm1 EmptyFM
glueVBal (Branch vy vz wu wv ww) (Branch wy wz xu xv xwglueVBal3 (Branch vy vz wu wv ww) (Branch wy wz xu xv xw)

  
glueVBal3 (Branch vy vz wu wv ww) (Branch wy wz xu xv xwglueVBal3GlueVBal2 wy wz xu xv xw vy vz wu wv ww vy vz wu wv ww wy wz xu xv xw (sIZE_RATIO * glueVBal3Size_l wy wz xu xv xw vy vz wu wv ww < glueVBal3Size_r wy wz xu xv xw vy vz wu wv ww)

  
glueVBal3GlueVBal0 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv vy vz wu wv ww wy wz xu xv xw True glueBal (Branch vy vz wu wv ww) (Branch wy wz xu xv xw)

  
glueVBal3GlueVBal1 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv vy vz wu wv ww wy wz xu xv xw True mkBalBranch vy vz wv (glueVBal ww (Branch wy wz xu xv xw))
glueVBal3GlueVBal1 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv vy vz wu wv ww wy wz xu xv xw False glueVBal3GlueVBal0 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv vy vz wu wv ww wy wz xu xv xw otherwise

  
glueVBal3GlueVBal2 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv vy vz wu wv ww wy wz xu xv xw True mkBalBranch wy wz (glueVBal (Branch vy vz wu wv ww) xv) xw
glueVBal3GlueVBal2 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv vy vz wu wv ww wy wz xu xv xw False glueVBal3GlueVBal1 zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv vy vz wu wv ww wy wz xu xv xw (sIZE_RATIO * glueVBal3Size_r zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv < glueVBal3Size_l zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv)

  
glueVBal3Size_l zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv sizeFM (Branch zvx zvy zvz zwu zwv)

  
glueVBal3Size_r zuy zuz zvu zvv zvw zvx zvy zvz zwu zwv sizeFM (Branch zuy zuz zvu zvv zvw)

  
glueVBal4 fm1 EmptyFM fm1
glueVBal4 xuy xuz glueVBal3 xuy xuz

  
glueVBal5 EmptyFM fm2 fm2
glueVBal5 xvv xvw glueVBal4 xvv xvw

  intersectFM :: Ord a => FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
intersectFM fm1 fm2 intersectFM_C intersectFM0 fm1 fm2

  
intersectFM0 left right right

  intersectFM_C :: Ord a => (b  ->  d  ->  c ->  FiniteMap a b  ->  FiniteMap a d  ->  FiniteMap a c
intersectFM_C combiner fm1 EmptyFM intersectFM_C4 combiner fm1 EmptyFM
intersectFM_C combiner EmptyFM fm2 intersectFM_C3 combiner EmptyFM fm2
intersectFM_C combiner fm1 (Branch split_key elt2 vuv left rightintersectFM_C2 combiner fm1 (Branch split_key elt2 vuv left right)

  
intersectFM_C2 combiner fm1 (Branch split_key elt2 vuv left rightintersectFM_C2IntersectFM_C1 fm1 split_key combiner fm1 split_key elt2 vuv left right (Maybe.isJust (intersectFM_C2Maybe_elt1 fm1 split_key))

  
intersectFM_C2Elt1 yzw yzx intersectFM_C2Elt10 yzw yzx (intersectFM_C2Vv1 yzw yzx)

  
intersectFM_C2Elt10 yzw yzx (Just elt1elt1

  
intersectFM_C2Gts yzw yzx splitGT yzw yzx

  
intersectFM_C2IntersectFM_C0 yzw yzx combiner fm1 split_key elt2 vuv left right True glueVBal (intersectFM_C combiner (intersectFM_C2Lts yzw yzx) left) (intersectFM_C combiner (intersectFM_C2Gts yzw yzx) right)

  
intersectFM_C2IntersectFM_C1 yzw yzx combiner fm1 split_key elt2 vuv left right True mkVBalBranch split_key (combiner (intersectFM_C2Elt1 yzw yzx) elt2) (intersectFM_C combiner (intersectFM_C2Lts yzw yzx) left) (intersectFM_C combiner (intersectFM_C2Gts yzw yzx) right)
intersectFM_C2IntersectFM_C1 yzw yzx combiner fm1 split_key elt2 vuv left right False intersectFM_C2IntersectFM_C0 yzw yzx combiner fm1 split_key elt2 vuv left right otherwise

  
intersectFM_C2Lts yzw yzx splitLT yzw yzx

  
intersectFM_C2Maybe_elt1 yzw yzx lookupFM yzw yzx

  
intersectFM_C2Vv1 yzw yzx intersectFM_C2Maybe_elt1 yzw yzx

  
intersectFM_C3 combiner EmptyFM fm2 emptyFM
intersectFM_C3 xyv xyw xyx intersectFM_C2 xyv xyw xyx

  
intersectFM_C4 combiner fm1 EmptyFM emptyFM
intersectFM_C4 xyz xzu xzv intersectFM_C3 xyz xzu xzv

  lookupFM :: Ord a => FiniteMap a b  ->  a  ->  Maybe b
lookupFM EmptyFM key lookupFM4 EmptyFM key
lookupFM (Branch key elt wuw fm_l fm_rkey_to_find lookupFM3 (Branch key elt wuw fm_l fm_r) key_to_find

  
lookupFM0 key elt wuw fm_l fm_r key_to_find True Just elt

  
lookupFM1 key elt wuw fm_l fm_r key_to_find True lookupFM fm_r key_to_find
lookupFM1 key elt wuw fm_l fm_r key_to_find False lookupFM0 key elt wuw fm_l fm_r key_to_find otherwise

  
lookupFM2 key elt wuw fm_l fm_r key_to_find True lookupFM fm_l key_to_find
lookupFM2 key elt wuw fm_l fm_r key_to_find False lookupFM1 key elt wuw fm_l fm_r key_to_find (key_to_find > key)

  
lookupFM3 (Branch key elt wuw fm_l fm_rkey_to_find lookupFM2 key elt wuw fm_l fm_r key_to_find (key_to_find < key)

  
lookupFM4 EmptyFM key Nothing
lookupFM4 yww ywx lookupFM3 yww ywx

  mkBalBranch :: Ord b => b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkBalBranch key elt fm_L fm_R mkBalBranch6 key elt fm_L fm_R

  
mkBalBranch6 key elt fm_L fm_R mkBalBranch6MkBalBranch5 key elt fm_R fm_L key elt fm_L fm_R (mkBalBranch6Size_l key elt fm_R fm_L + mkBalBranch6Size_r key elt fm_R fm_L < Pos (Succ (Succ Zero)))

  
mkBalBranch6Double_L zuu zuv zuw zux fm_l (Branch key_r elt_r yx (Branch key_rl elt_rl yy fm_rll fm_rlr) fm_rrmkBranch (Pos (Succ (Succ (Succ (Succ (Succ Zero)))))) key_rl elt_rl (mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))) zuu zuv fm_l fm_rll) (mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))) key_r elt_r fm_rlr fm_rr)

  
mkBalBranch6Double_R zuu zuv zuw zux (Branch key_l elt_l xy fm_ll (Branch key_lr elt_lr xz fm_lrl fm_lrr)) fm_r mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))) key_lr elt_lr (mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))) key_l elt_l fm_ll fm_lrl) (mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) zuu zuv fm_lrr fm_r)

  
mkBalBranch6MkBalBranch0 zuu zuv zuw zux fm_L fm_R (Branch yz zu zv fm_rl fm_rrmkBalBranch6MkBalBranch02 zuu zuv zuw zux fm_L fm_R (Branch yz zu zv fm_rl fm_rr)

  
mkBalBranch6MkBalBranch00 zuu zuv zuw zux fm_L fm_R yz zu zv fm_rl fm_rr True mkBalBranch6Double_L zuu zuv zuw zux fm_L fm_R

  
mkBalBranch6MkBalBranch01 zuu zuv zuw zux fm_L fm_R yz zu zv fm_rl fm_rr True mkBalBranch6Single_L zuu zuv zuw zux fm_L fm_R
mkBalBranch6MkBalBranch01 zuu zuv zuw zux fm_L fm_R yz zu zv fm_rl fm_rr False mkBalBranch6MkBalBranch00 zuu zuv zuw zux fm_L fm_R yz zu zv fm_rl fm_rr otherwise

  
mkBalBranch6MkBalBranch02 zuu zuv zuw zux fm_L fm_R (Branch yz zu zv fm_rl fm_rrmkBalBranch6MkBalBranch01 zuu zuv zuw zux fm_L fm_R yz zu zv fm_rl fm_rr (sizeFM fm_rl < Pos (Succ (Succ Zero)) * sizeFM fm_rr)

  
mkBalBranch6MkBalBranch1 zuu zuv zuw zux fm_L fm_R (Branch yu yv yw fm_ll fm_lrmkBalBranch6MkBalBranch12 zuu zuv zuw zux fm_L fm_R (Branch yu yv yw fm_ll fm_lr)

  
mkBalBranch6MkBalBranch10 zuu zuv zuw zux fm_L fm_R yu yv yw fm_ll fm_lr True mkBalBranch6Double_R zuu zuv zuw zux fm_L fm_R

  
mkBalBranch6MkBalBranch11 zuu zuv zuw zux fm_L fm_R yu yv yw fm_ll fm_lr True mkBalBranch6Single_R zuu zuv zuw zux fm_L fm_R
mkBalBranch6MkBalBranch11 zuu zuv zuw zux fm_L fm_R yu yv yw fm_ll fm_lr False mkBalBranch6MkBalBranch10 zuu zuv zuw zux fm_L fm_R yu yv yw fm_ll fm_lr otherwise

  
mkBalBranch6MkBalBranch12 zuu zuv zuw zux fm_L fm_R (Branch yu yv yw fm_ll fm_lrmkBalBranch6MkBalBranch11 zuu zuv zuw zux fm_L fm_R yu yv yw fm_ll fm_lr (sizeFM fm_lr < Pos (Succ (Succ Zero)) * sizeFM fm_ll)

  
mkBalBranch6MkBalBranch2 zuu zuv zuw zux key elt fm_L fm_R True mkBranch (Pos (Succ (Succ Zero))) key elt fm_L fm_R

  
mkBalBranch6MkBalBranch3 zuu zuv zuw zux key elt fm_L fm_R True mkBalBranch6MkBalBranch1 zuu zuv zuw zux fm_L fm_R fm_L
mkBalBranch6MkBalBranch3 zuu zuv zuw zux key elt fm_L fm_R False mkBalBranch6MkBalBranch2 zuu zuv zuw zux key elt fm_L fm_R otherwise

  
mkBalBranch6MkBalBranch4 zuu zuv zuw zux key elt fm_L fm_R True mkBalBranch6MkBalBranch0 zuu zuv zuw zux fm_L fm_R fm_R
mkBalBranch6MkBalBranch4 zuu zuv zuw zux key elt fm_L fm_R False mkBalBranch6MkBalBranch3 zuu zuv zuw zux key elt fm_L fm_R (mkBalBranch6Size_l zuu zuv zuw zux > sIZE_RATIO * mkBalBranch6Size_r zuu zuv zuw zux)

  
mkBalBranch6MkBalBranch5 zuu zuv zuw zux key elt fm_L fm_R True mkBranch (Pos (Succ Zero)) key elt fm_L fm_R
mkBalBranch6MkBalBranch5 zuu zuv zuw zux key elt fm_L fm_R False mkBalBranch6MkBalBranch4 zuu zuv zuw zux key elt fm_L fm_R (mkBalBranch6Size_r zuu zuv zuw zux > sIZE_RATIO * mkBalBranch6Size_l zuu zuv zuw zux)

  
mkBalBranch6Single_L zuu zuv zuw zux fm_l (Branch key_r elt_r zw fm_rl fm_rrmkBranch (Pos (Succ (Succ (Succ Zero)))) key_r elt_r (mkBranch (Pos (Succ (Succ (Succ (Succ Zero))))) zuu zuv fm_l fm_rl) fm_rr

  
mkBalBranch6Single_R zuu zuv zuw zux (Branch key_l elt_l xx fm_ll fm_lrfm_r mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) key_l elt_l fm_ll (mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))) zuu zuv fm_lr fm_r)

  
mkBalBranch6Size_l zuu zuv zuw zux sizeFM zux

  
mkBalBranch6Size_r zuu zuv zuw zux sizeFM zuw

  mkBranch :: Ord a => Int  ->  a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkBranch which key elt fm_l fm_r mkBranchResult key elt fm_r fm_l

  
mkBranchBalance_ok zww zwx zwy True

  
mkBranchLeft_ok zww zwx zwy mkBranchLeft_ok0 zww zwx zwy zwy zwx zwy

  
mkBranchLeft_ok0 zww zwx zwy fm_l key EmptyFM True
mkBranchLeft_ok0 zww zwx zwy fm_l key (Branch left_key vuw vux vuy vuzmkBranchLeft_ok0Biggest_left_key fm_l < key

  
mkBranchLeft_ok0Biggest_left_key zzw fst (findMax zzw)

  
mkBranchLeft_size zww zwx zwy sizeFM zwy

  
mkBranchResult zwz zxu zxv zxw Branch zwz zxu (mkBranchUnbox zxv zwz zxw (Pos (Succ Zero+ mkBranchLeft_size zxv zwz zxw + mkBranchRight_size zxv zwz zxw)) zxw zxv

  
mkBranchRight_ok zww zwx zwy mkBranchRight_ok0 zww zwx zwy zww zwx zww

  
mkBranchRight_ok0 zww zwx zwy fm_r key EmptyFM True
mkBranchRight_ok0 zww zwx zwy fm_r key (Branch right_key vvu vvv vvw vvxkey < mkBranchRight_ok0Smallest_right_key fm_r

  
mkBranchRight_ok0Smallest_right_key zzv fst (findMin zzv)

  
mkBranchRight_size zww zwx zwy sizeFM zww

  mkBranchUnbox :: Ord a =>  ->  (FiniteMap a b) ( ->  a ( ->  (FiniteMap a b) (Int  ->  Int)))
mkBranchUnbox zww zwx zwy x x

  mkVBalBranch :: Ord b => b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkVBalBranch key elt EmptyFM fm_r mkVBalBranch5 key elt EmptyFM fm_r
mkVBalBranch key elt fm_l EmptyFM mkVBalBranch4 key elt fm_l EmptyFM
mkVBalBranch key elt (Branch vxz vyu vyv vyw vyx) (Branch vyz vzu vzv vzw vzxmkVBalBranch3 key elt (Branch vxz vyu vyv vyw vyx) (Branch vyz vzu vzv vzw vzx)

  
mkVBalBranch3 key elt (Branch vxz vyu vyv vyw vyx) (Branch vyz vzu vzv vzw vzxmkVBalBranch3MkVBalBranch2 vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx (sIZE_RATIO * mkVBalBranch3Size_l vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx < mkVBalBranch3Size_r vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx)

  
mkVBalBranch3MkVBalBranch0 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx True mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))) key elt (Branch vxz vyu vyv vyw vyx) (Branch vyz vzu vzv vzw vzx)

  
mkVBalBranch3MkVBalBranch1 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx True mkBalBranch vxz vyu vyw (mkVBalBranch key elt vyx (Branch vyz vzu vzv vzw vzx))
mkVBalBranch3MkVBalBranch1 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx False mkVBalBranch3MkVBalBranch0 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx otherwise

  
mkVBalBranch3MkVBalBranch2 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx True mkBalBranch vyz vzu (mkVBalBranch key elt (Branch vxz vyu vyv vyw vyx) vzw) vzx
mkVBalBranch3MkVBalBranch2 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx False mkVBalBranch3MkVBalBranch1 zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu key elt vxz vyu vyv vyw vyx vyz vzu vzv vzw vzx (sIZE_RATIO * mkVBalBranch3Size_r zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu < mkVBalBranch3Size_l zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu)

  
mkVBalBranch3Size_l zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu sizeFM (Branch zxx zxy zxz zyu zyv)

  
mkVBalBranch3Size_r zxx zxy zxz zyu zyv zyw zyx zyy zyz zzu sizeFM (Branch zyw zyx zyy zyz zzu)

  
mkVBalBranch4 key elt fm_l EmptyFM addToFM fm_l key elt
mkVBalBranch4 yux yuy yuz yvu mkVBalBranch3 yux yuy yuz yvu

  
mkVBalBranch5 key elt EmptyFM fm_r addToFM fm_r key elt
mkVBalBranch5 yvw yvx yvy yvz mkVBalBranch4 yvw yvx yvy yvz

  sIZE_RATIO :: Int
sIZE_RATIO Pos (Succ (Succ (Succ (Succ (Succ Zero)))))

  sizeFM :: FiniteMap a b  ->  Int
sizeFM EmptyFM Pos Zero
sizeFM (Branch vwy vwz size vxu vxvsize

  splitGT :: Ord a => FiniteMap a b  ->  a  ->  FiniteMap a b
splitGT EmptyFM split_key splitGT4 EmptyFM split_key
splitGT (Branch key elt vw fm_l fm_rsplit_key splitGT3 (Branch key elt vw fm_l fm_r) split_key

  
splitGT0 key elt vw fm_l fm_r split_key True fm_r

  
splitGT1 key elt vw fm_l fm_r split_key True mkVBalBranch key elt (splitGT fm_l split_key) fm_r
splitGT1 key elt vw fm_l fm_r split_key False splitGT0 key elt vw fm_l fm_r split_key otherwise

  
splitGT2 key elt vw fm_l fm_r split_key True splitGT fm_r split_key
splitGT2 key elt vw fm_l fm_r split_key False splitGT1 key elt vw fm_l fm_r split_key (split_key < key)

  
splitGT3 (Branch key elt vw fm_l fm_rsplit_key splitGT2 key elt vw fm_l fm_r split_key (split_key > key)

  
splitGT4 EmptyFM split_key emptyFM
splitGT4 wzz xuu splitGT3 wzz xuu

  splitLT :: Ord b => FiniteMap b a  ->  b  ->  FiniteMap b a
splitLT EmptyFM split_key splitLT4 EmptyFM split_key
splitLT (Branch key elt vvz fm_l fm_rsplit_key splitLT3 (Branch key elt vvz fm_l fm_r) split_key

  
splitLT0 key elt vvz fm_l fm_r split_key True fm_l

  
splitLT1 key elt vvz fm_l fm_r split_key True mkVBalBranch key elt fm_l (splitLT fm_r split_key)
splitLT1 key elt vvz fm_l fm_r split_key False splitLT0 key elt vvz fm_l fm_r split_key otherwise

  
splitLT2 key elt vvz fm_l fm_r split_key True splitLT fm_l split_key
splitLT2 key elt vvz fm_l fm_r split_key False splitLT1 key elt vvz fm_l fm_r split_key (split_key > key)

  
splitLT3 (Branch key elt vvz fm_l fm_rsplit_key splitLT2 key elt vvz fm_l fm_r split_key (split_key < key)

  
splitLT4 EmptyFM split_key emptyFM
splitLT4 xzy xzz splitLT3 xzy xzz

  unitFM :: b  ->  a  ->  FiniteMap b a
unitFM key elt Branch key elt (Pos (Succ Zero)) emptyFM emptyFM


module Maybe where
  import qualified FiniteMap
import qualified Prelude

  isJust :: Maybe a  ->  Bool
isJust Nothing False
isJust wuz True



Haskell To QDPs


↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueBal2Mid_elt20(zzz476, zzz477, zzz478, zzz479, zzz480, zzz481, zzz482, zzz483, zzz484, zzz485, zzz486, zzz487, zzz488, Branch(zzz4890, zzz4891, zzz4892, zzz4893, zzz4894), zzz490, h, ba) → new_glueBal2Mid_elt20(zzz476, zzz477, zzz478, zzz479, zzz480, zzz481, zzz482, zzz483, zzz484, zzz485, zzz4890, zzz4891, zzz4892, zzz4893, zzz4894, h, ba)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueBal2Mid_key20(zzz460, zzz461, zzz462, zzz463, zzz464, zzz465, zzz466, zzz467, zzz468, zzz469, zzz470, zzz471, zzz472, Branch(zzz4730, zzz4731, zzz4732, zzz4733, zzz4734), zzz474, h, ba) → new_glueBal2Mid_key20(zzz460, zzz461, zzz462, zzz463, zzz464, zzz465, zzz466, zzz467, zzz468, zzz469, zzz4730, zzz4731, zzz4732, zzz4733, zzz4734, h, ba)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueBal2Mid_elt10(zzz508, zzz509, zzz510, zzz511, zzz512, zzz513, zzz514, zzz515, zzz516, zzz517, zzz518, zzz519, zzz520, zzz521, Branch(zzz5220, zzz5221, zzz5222, zzz5223, zzz5224), h, ba) → new_glueBal2Mid_elt10(zzz508, zzz509, zzz510, zzz511, zzz512, zzz513, zzz514, zzz515, zzz516, zzz517, zzz5220, zzz5221, zzz5222, zzz5223, zzz5224, h, ba)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueBal2Mid_key10(zzz492, zzz493, zzz494, zzz495, zzz496, zzz497, zzz498, zzz499, zzz500, zzz501, zzz502, zzz503, zzz504, zzz505, Branch(zzz5060, zzz5061, zzz5062, zzz5063, zzz5064), h, ba) → new_glueBal2Mid_key10(zzz492, zzz493, zzz494, zzz495, zzz496, zzz497, zzz498, zzz499, zzz500, zzz501, zzz5060, zzz5061, zzz5062, zzz5063, zzz5064, h, ba)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_primEqNat(Succ(zzz40000), Succ(zzz30000)) → new_primEqNat(zzz40000, zzz30000)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_primCmpNat(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat(zzz4000000, zzz33000000)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_primMinusNat(Succ(zzz152200), Succ(zzz41000)) → new_primMinusNat(zzz152200, zzz41000)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_primPlusNat(Succ(zzz22200), Succ(zzz3001000)) → new_primPlusNat(zzz22200, zzz3001000)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_primMulNat(Succ(zzz400100), Succ(zzz300100)) → new_primMulNat(zzz400100, Succ(zzz300100))

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_esEs1(@3(zzz4000, zzz4001, zzz4002), @3(zzz3000, zzz3001, zzz3002), gb, app(app(ty_@2, hb), hc), fa) → new_esEs3(zzz4001, zzz3001, hb, hc)
new_esEs3(@2(zzz4000, zzz4001), @2(zzz3000, zzz3001), bda, app(ty_[], bdh)) → new_esEs2(zzz4001, zzz3001, bdh)
new_esEs1(@3(zzz4000, zzz4001, zzz4002), @3(zzz3000, zzz3001, zzz3002), gb, app(app(app(ty_@3, gf), gg), gh), fa) → new_esEs1(zzz4001, zzz3001, gf, gg, gh)
new_esEs1(@3(zzz4000, zzz4001, zzz4002), @3(zzz3000, zzz3001, zzz3002), gb, app(ty_Maybe, ge), fa) → new_esEs0(zzz4001, zzz3001, ge)
new_esEs(Left(zzz4000), Left(zzz3000), app(ty_[], bg), bb) → new_esEs2(zzz4000, zzz3000, bg)
new_esEs(Right(zzz4000), Right(zzz3000), cb, app(app(ty_@2, dc), dd)) → new_esEs3(zzz4000, zzz3000, dc, dd)
new_esEs0(Just(zzz4000), Just(zzz3000), app(ty_Maybe, dg)) → new_esEs0(zzz4000, zzz3000, dg)
new_esEs1(@3(zzz4000, zzz4001, zzz4002), @3(zzz3000, zzz3001, zzz3002), gb, eh, app(app(app(ty_@3, hg), hh), baa)) → new_esEs1(zzz4002, zzz3002, hg, hh, baa)
new_esEs1(@3(zzz4000, zzz4001, zzz4002), @3(zzz3000, zzz3001, zzz3002), gb, eh, app(ty_[], bab)) → new_esEs2(zzz4002, zzz3002, bab)
new_esEs3(@2(zzz4000, zzz4001), @2(zzz3000, zzz3001), app(ty_[], bcf), bca) → new_esEs2(zzz4000, zzz3000, bcf)
new_esEs1(@3(zzz4000, zzz4001, zzz4002), @3(zzz3000, zzz3001, zzz3002), gb, eh, app(ty_Maybe, hf)) → new_esEs0(zzz4002, zzz3002, hf)
new_esEs3(@2(zzz4000, zzz4001), @2(zzz3000, zzz3001), app(app(app(ty_@3, bcc), bcd), bce), bca) → new_esEs1(zzz4000, zzz3000, bcc, bcd, bce)
new_esEs(Left(zzz4000), Left(zzz3000), app(ty_Maybe, bc), bb) → new_esEs0(zzz4000, zzz3000, bc)
new_esEs1(@3(zzz4000, zzz4001, zzz4002), @3(zzz3000, zzz3001, zzz3002), gb, app(ty_[], ha), fa) → new_esEs2(zzz4001, zzz3001, ha)
new_esEs2(:(zzz4000, zzz4001), :(zzz3000, zzz3001), app(ty_Maybe, bag)) → new_esEs0(zzz4000, zzz3000, bag)
new_esEs3(@2(zzz4000, zzz4001), @2(zzz3000, zzz3001), bda, app(app(ty_@2, bea), beb)) → new_esEs3(zzz4001, zzz3001, bea, beb)
new_esEs0(Just(zzz4000), Just(zzz3000), app(app(ty_Either, de), df)) → new_esEs(zzz4000, zzz3000, de, df)
new_esEs2(:(zzz4000, zzz4001), :(zzz3000, zzz3001), app(app(app(ty_@3, bah), bba), bbb)) → new_esEs1(zzz4000, zzz3000, bah, bba, bbb)
new_esEs2(:(zzz4000, zzz4001), :(zzz3000, zzz3001), app(app(ty_Either, bae), baf)) → new_esEs(zzz4000, zzz3000, bae, baf)
new_esEs1(@3(zzz4000, zzz4001, zzz4002), @3(zzz3000, zzz3001, zzz3002), app(app(app(ty_@3, fc), fd), ff), eh, fa) → new_esEs1(zzz4000, zzz3000, fc, fd, ff)
new_esEs(Right(zzz4000), Right(zzz3000), cb, app(ty_[], db)) → new_esEs2(zzz4000, zzz3000, db)
new_esEs(Right(zzz4000), Right(zzz3000), cb, app(app(app(ty_@3, cf), cg), da)) → new_esEs1(zzz4000, zzz3000, cf, cg, da)
new_esEs(Right(zzz4000), Right(zzz3000), cb, app(app(ty_Either, cc), cd)) → new_esEs(zzz4000, zzz3000, cc, cd)
new_esEs(Left(zzz4000), Left(zzz3000), app(app(ty_@2, bh), ca), bb) → new_esEs3(zzz4000, zzz3000, bh, ca)
new_esEs3(@2(zzz4000, zzz4001), @2(zzz3000, zzz3001), app(ty_Maybe, bcb), bca) → new_esEs0(zzz4000, zzz3000, bcb)
new_esEs1(@3(zzz4000, zzz4001, zzz4002), @3(zzz3000, zzz3001, zzz3002), app(app(ty_@2, fh), ga), eh, fa) → new_esEs3(zzz4000, zzz3000, fh, ga)
new_esEs1(@3(zzz4000, zzz4001, zzz4002), @3(zzz3000, zzz3001, zzz3002), gb, eh, app(app(ty_Either, hd), he)) → new_esEs(zzz4002, zzz3002, hd, he)
new_esEs2(:(zzz4000, zzz4001), :(zzz3000, zzz3001), app(app(ty_@2, bbd), bbe)) → new_esEs3(zzz4000, zzz3000, bbd, bbe)
new_esEs2(:(zzz4000, zzz4001), :(zzz3000, zzz3001), bbf) → new_esEs2(zzz4001, zzz3001, bbf)
new_esEs1(@3(zzz4000, zzz4001, zzz4002), @3(zzz3000, zzz3001, zzz3002), gb, app(app(ty_Either, gc), gd), fa) → new_esEs(zzz4001, zzz3001, gc, gd)
new_esEs3(@2(zzz4000, zzz4001), @2(zzz3000, zzz3001), app(app(ty_@2, bcg), bch), bca) → new_esEs3(zzz4000, zzz3000, bcg, bch)
new_esEs1(@3(zzz4000, zzz4001, zzz4002), @3(zzz3000, zzz3001, zzz3002), app(app(ty_Either, ef), eg), eh, fa) → new_esEs(zzz4000, zzz3000, ef, eg)
new_esEs3(@2(zzz4000, zzz4001), @2(zzz3000, zzz3001), bda, app(ty_Maybe, bdd)) → new_esEs0(zzz4001, zzz3001, bdd)
new_esEs(Right(zzz4000), Right(zzz3000), cb, app(ty_Maybe, ce)) → new_esEs0(zzz4000, zzz3000, ce)
new_esEs2(:(zzz4000, zzz4001), :(zzz3000, zzz3001), app(ty_[], bbc)) → new_esEs2(zzz4000, zzz3000, bbc)
new_esEs3(@2(zzz4000, zzz4001), @2(zzz3000, zzz3001), bda, app(app(ty_Either, bdb), bdc)) → new_esEs(zzz4001, zzz3001, bdb, bdc)
new_esEs1(@3(zzz4000, zzz4001, zzz4002), @3(zzz3000, zzz3001, zzz3002), app(ty_[], fg), eh, fa) → new_esEs2(zzz4000, zzz3000, fg)
new_esEs1(@3(zzz4000, zzz4001, zzz4002), @3(zzz3000, zzz3001, zzz3002), app(ty_Maybe, fb), eh, fa) → new_esEs0(zzz4000, zzz3000, fb)
new_esEs(Left(zzz4000), Left(zzz3000), app(app(app(ty_@3, bd), be), bf), bb) → new_esEs1(zzz4000, zzz3000, bd, be, bf)
new_esEs3(@2(zzz4000, zzz4001), @2(zzz3000, zzz3001), app(app(ty_Either, bbg), bbh), bca) → new_esEs(zzz4000, zzz3000, bbg, bbh)
new_esEs3(@2(zzz4000, zzz4001), @2(zzz3000, zzz3001), bda, app(app(app(ty_@3, bde), bdf), bdg)) → new_esEs1(zzz4001, zzz3001, bde, bdf, bdg)
new_esEs1(@3(zzz4000, zzz4001, zzz4002), @3(zzz3000, zzz3001, zzz3002), gb, eh, app(app(ty_@2, bac), bad)) → new_esEs3(zzz4002, zzz3002, bac, bad)
new_esEs0(Just(zzz4000), Just(zzz3000), app(app(ty_@2, ed), ee)) → new_esEs3(zzz4000, zzz3000, ed, ee)
new_esEs0(Just(zzz4000), Just(zzz3000), app(app(app(ty_@3, dh), ea), eb)) → new_esEs1(zzz4000, zzz3000, dh, ea, eb)
new_esEs0(Just(zzz4000), Just(zzz3000), app(ty_[], ec)) → new_esEs2(zzz4000, zzz3000, ec)
new_esEs(Left(zzz4000), Left(zzz3000), app(app(ty_Either, h), ba), bb) → new_esEs(zzz4000, zzz3000, h, ba)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_compare20(Just(:(zzz400000, zzz400001)), Just(:(zzz3300000, zzz3300001)), False, app(ty_[], h)) → new_compare0(zzz400001, zzz3300001, h)
new_ltEs0(Just(zzz400000), Just(zzz3300000), app(app(app(ty_@3, ce), cf), cg)) → new_ltEs1(zzz400000, zzz3300000, ce, cf, cg)
new_ltEs2(@2(zzz400000, zzz400001), @2(zzz3300000, zzz3300001), app(app(ty_@2, bbd), bbe), bag) → new_lt2(zzz400000, zzz3300000, bbd, bbe)
new_ltEs3(Left(zzz400000), Left(zzz3300000), app(app(ty_Either, bch), bda), bca) → new_ltEs3(zzz400000, zzz3300000, bch, bda)
new_ltEs1(@3(zzz400000, zzz400001, zzz400002), @3(zzz3300000, zzz3300001, zzz3300002), de, app(app(app(ty_@3, fc), fd), ff), fa) → new_lt1(zzz400001, zzz3300001, fc, fd, ff)
new_compare2(zzz400000, zzz3300000, ge, gf, gg) → new_compare21(zzz400000, zzz3300000, new_esEs5(zzz400000, zzz3300000, ge, gf, gg), ge, gf, gg)
new_compare20(Just(@2(zzz400000, zzz400001)), Just(@2(zzz3300000, zzz3300001)), False, app(app(ty_@2, hd), app(ty_[], he))) → new_ltEs(zzz400001, zzz3300001, he)
new_compare20(Just(@3(zzz400000, zzz400001, zzz400002)), Just(@3(zzz3300000, zzz3300001, zzz3300002)), False, app(app(app(ty_@3, de), df), app(app(ty_Either, ef), eg))) → new_ltEs3(zzz400002, zzz3300002, ef, eg)
new_compare0(:(zzz400000, zzz400001), :(zzz3300000, zzz3300001), h) → new_compare0(zzz400001, zzz3300001, h)
new_compare20(Just(@3(zzz400000, zzz400001, zzz400002)), Just(@3(zzz3300000, zzz3300001, zzz3300002)), False, app(app(app(ty_@3, app(app(ty_@2, gh), ha)), df), fa)) → new_compare22(zzz400000, zzz3300000, new_esEs6(zzz400000, zzz3300000, gh, ha), gh, ha)
new_compare20(Just(@2(zzz400000, zzz400001)), Just(@2(zzz3300000, zzz3300001)), False, app(app(ty_@2, app(ty_[], baf)), bag)) → new_lt(zzz400000, zzz3300000, baf)
new_compare20(Just(Right(zzz400000)), Just(Right(zzz3300000)), False, app(app(ty_Either, bdb), app(app(ty_Either, beb), bec))) → new_ltEs3(zzz400000, zzz3300000, beb, bec)
new_compare20(Just(Right(zzz400000)), Just(Right(zzz3300000)), False, app(app(ty_Either, bdb), app(ty_[], bdc))) → new_ltEs(zzz400000, zzz3300000, bdc)
new_ltEs1(@3(zzz400000, zzz400001, zzz400002), @3(zzz3300000, zzz3300001, zzz3300002), de, df, app(app(ty_@2, ed), ee)) → new_ltEs2(zzz400002, zzz3300002, ed, ee)
new_ltEs1(@3(zzz400000, zzz400001, zzz400002), @3(zzz3300000, zzz3300001, zzz3300002), de, app(ty_Maybe, fb), fa) → new_lt0(zzz400001, zzz3300001, fb)
new_compare20(Just(Left(zzz400000)), Just(Left(zzz3300000)), False, app(app(ty_Either, app(ty_[], bbh)), bca)) → new_ltEs(zzz400000, zzz3300000, bbh)
new_compare20(Just(@2(zzz400000, zzz400001)), Just(@2(zzz3300000, zzz3300001)), False, app(app(ty_@2, hd), app(app(app(ty_@3, hg), hh), baa))) → new_ltEs1(zzz400001, zzz3300001, hg, hh, baa)
new_compare20(Just(Just(zzz400000)), Just(Just(zzz3300000)), False, app(ty_Maybe, app(app(app(ty_@3, ce), cf), cg))) → new_ltEs1(zzz400000, zzz3300000, ce, cf, cg)
new_ltEs0(Just(zzz400000), Just(zzz3300000), app(ty_Maybe, cd)) → new_ltEs0(zzz400000, zzz3300000, cd)
new_compare20(Just(Left(zzz400000)), Just(Left(zzz3300000)), False, app(app(ty_Either, app(ty_Maybe, bcb)), bca)) → new_ltEs0(zzz400000, zzz3300000, bcb)
new_compare3(zzz400000, zzz3300000, gh, ha) → new_compare22(zzz400000, zzz3300000, new_esEs6(zzz400000, zzz3300000, gh, ha), gh, ha)
new_compare20(Just(Right(zzz400000)), Just(Right(zzz3300000)), False, app(app(ty_Either, bdb), app(app(ty_@2, bdh), bea))) → new_ltEs2(zzz400000, zzz3300000, bdh, bea)
new_compare20(Just(@3(zzz400000, zzz400001, zzz400002)), Just(@3(zzz3300000, zzz3300001, zzz3300002)), False, app(app(app(ty_@3, app(ty_Maybe, gd)), df), fa)) → new_lt0(zzz400000, zzz3300000, gd)
new_ltEs3(Left(zzz400000), Left(zzz3300000), app(ty_Maybe, bcb), bca) → new_ltEs0(zzz400000, zzz3300000, bcb)
new_compare20(Just(Left(zzz400000)), Just(Left(zzz3300000)), False, app(app(ty_Either, app(app(ty_Either, bch), bda)), bca)) → new_ltEs3(zzz400000, zzz3300000, bch, bda)
new_compare20(Just(@3(zzz400000, zzz400001, zzz400002)), Just(@3(zzz3300000, zzz3300001, zzz3300002)), False, app(app(app(ty_@3, de), df), app(app(ty_@2, ed), ee))) → new_ltEs2(zzz400002, zzz3300002, ed, ee)
new_ltEs1(@3(zzz400000, zzz400001, zzz400002), @3(zzz3300000, zzz3300001, zzz3300002), app(app(ty_Either, hb), hc), df, fa) → new_compare23(zzz400000, zzz3300000, new_esEs7(zzz400000, zzz3300000, hb, hc), hb, hc)
new_compare20(Just(Left(zzz400000)), Just(Left(zzz3300000)), False, app(app(ty_Either, app(app(ty_@2, bcf), bcg)), bca)) → new_ltEs2(zzz400000, zzz3300000, bcf, bcg)
new_ltEs3(Right(zzz400000), Right(zzz3300000), bdb, app(app(ty_Either, beb), bec)) → new_ltEs3(zzz400000, zzz3300000, beb, bec)
new_compare20(Just(@3(zzz400000, zzz400001, zzz400002)), Just(@3(zzz3300000, zzz3300001, zzz3300002)), False, app(app(app(ty_@3, de), df), app(ty_Maybe, dh))) → new_ltEs0(zzz400002, zzz3300002, dh)
new_ltEs3(Right(zzz400000), Right(zzz3300000), bdb, app(ty_[], bdc)) → new_ltEs(zzz400000, zzz3300000, bdc)
new_compare20(Just(@3(zzz400000, zzz400001, zzz400002)), Just(@3(zzz3300000, zzz3300001, zzz3300002)), False, app(app(app(ty_@3, de), app(app(ty_Either, ga), gb)), fa)) → new_lt3(zzz400001, zzz3300001, ga, gb)
new_compare20(Just(@2(zzz400000, zzz400001)), Just(@2(zzz3300000, zzz3300001)), False, app(app(ty_@2, app(app(ty_Either, bbf), bbg)), bag)) → new_lt3(zzz400000, zzz3300000, bbf, bbg)
new_lt1(zzz400000, zzz3300000, ge, gf, gg) → new_compare21(zzz400000, zzz3300000, new_esEs5(zzz400000, zzz3300000, ge, gf, gg), ge, gf, gg)
new_ltEs0(Just(zzz400000), Just(zzz3300000), app(ty_[], cc)) → new_ltEs(zzz400000, zzz3300000, cc)
new_compare23(zzz400000, zzz3300000, False, hb, hc) → new_ltEs3(zzz400000, zzz3300000, hb, hc)
new_ltEs2(@2(zzz400000, zzz400001), @2(zzz3300000, zzz3300001), hd, app(app(app(ty_@3, hg), hh), baa)) → new_ltEs1(zzz400001, zzz3300001, hg, hh, baa)
new_ltEs1(@3(zzz400000, zzz400001, zzz400002), @3(zzz3300000, zzz3300001, zzz3300002), de, app(app(ty_Either, ga), gb), fa) → new_lt3(zzz400001, zzz3300001, ga, gb)
new_ltEs1(@3(zzz400000, zzz400001, zzz400002), @3(zzz3300000, zzz3300001, zzz3300002), de, df, app(ty_[], dg)) → new_ltEs(zzz400002, zzz3300002, dg)
new_compare20(Just(@3(zzz400000, zzz400001, zzz400002)), Just(@3(zzz3300000, zzz3300001, zzz3300002)), False, app(app(app(ty_@3, de), app(ty_Maybe, fb)), fa)) → new_lt0(zzz400001, zzz3300001, fb)
new_primCompAux(zzz400000, zzz3300000, zzz215, app(ty_Maybe, bb)) → new_compare1(zzz400000, zzz3300000, bb)
new_ltEs2(@2(zzz400000, zzz400001), @2(zzz3300000, zzz3300001), hd, app(ty_[], he)) → new_ltEs(zzz400001, zzz3300001, he)
new_ltEs3(Left(zzz400000), Left(zzz3300000), app(ty_[], bbh), bca) → new_ltEs(zzz400000, zzz3300000, bbh)
new_ltEs1(@3(zzz400000, zzz400001, zzz400002), @3(zzz3300000, zzz3300001, zzz3300002), app(ty_[], gc), df, fa) → new_compare0(zzz400000, zzz3300000, gc)
new_ltEs1(@3(zzz400000, zzz400001, zzz400002), @3(zzz3300000, zzz3300001, zzz3300002), de, df, app(app(app(ty_@3, ea), eb), ec)) → new_ltEs1(zzz400002, zzz3300002, ea, eb, ec)
new_ltEs1(@3(zzz400000, zzz400001, zzz400002), @3(zzz3300000, zzz3300001, zzz3300002), app(app(ty_@2, gh), ha), df, fa) → new_compare22(zzz400000, zzz3300000, new_esEs6(zzz400000, zzz3300000, gh, ha), gh, ha)
new_ltEs2(@2(zzz400000, zzz400001), @2(zzz3300000, zzz3300001), app(app(app(ty_@3, bba), bbb), bbc), bag) → new_lt1(zzz400000, zzz3300000, bba, bbb, bbc)
new_compare20(Just(@3(zzz400000, zzz400001, zzz400002)), Just(@3(zzz3300000, zzz3300001, zzz3300002)), False, app(app(app(ty_@3, de), app(app(app(ty_@3, fc), fd), ff)), fa)) → new_lt1(zzz400001, zzz3300001, fc, fd, ff)
new_compare20(Just(@2(zzz400000, zzz400001)), Just(@2(zzz3300000, zzz3300001)), False, app(app(ty_@2, app(ty_Maybe, bah)), bag)) → new_lt0(zzz400000, zzz3300000, bah)
new_ltEs2(@2(zzz400000, zzz400001), @2(zzz3300000, zzz3300001), app(ty_Maybe, bah), bag) → new_lt0(zzz400000, zzz3300000, bah)
new_lt0(zzz4000, zzz33000, cb) → new_compare20(zzz4000, zzz33000, new_esEs4(zzz4000, zzz33000, cb), cb)
new_compare20(Just(@3(zzz400000, zzz400001, zzz400002)), Just(@3(zzz3300000, zzz3300001, zzz3300002)), False, app(app(app(ty_@3, de), df), app(ty_[], dg))) → new_ltEs(zzz400002, zzz3300002, dg)
new_compare20(Just(@3(zzz400000, zzz400001, zzz400002)), Just(@3(zzz3300000, zzz3300001, zzz3300002)), False, app(app(app(ty_@3, app(app(ty_Either, hb), hc)), df), fa)) → new_compare23(zzz400000, zzz3300000, new_esEs7(zzz400000, zzz3300000, hb, hc), hb, hc)
new_ltEs2(@2(zzz400000, zzz400001), @2(zzz3300000, zzz3300001), hd, app(app(ty_Either, bad), bae)) → new_ltEs3(zzz400001, zzz3300001, bad, bae)
new_compare20(Just(@2(zzz400000, zzz400001)), Just(@2(zzz3300000, zzz3300001)), False, app(app(ty_@2, hd), app(app(ty_@2, bab), bac))) → new_ltEs2(zzz400001, zzz3300001, bab, bac)
new_compare0(:(zzz400000, zzz400001), :(zzz3300000, zzz3300001), h) → new_primCompAux(zzz400000, zzz3300000, new_compare(zzz400001, zzz3300001, h), h)
new_compare20(Just(@2(zzz400000, zzz400001)), Just(@2(zzz3300000, zzz3300001)), False, app(app(ty_@2, app(app(app(ty_@3, bba), bbb), bbc)), bag)) → new_lt1(zzz400000, zzz3300000, bba, bbb, bbc)
new_ltEs2(@2(zzz400000, zzz400001), @2(zzz3300000, zzz3300001), app(ty_[], baf), bag) → new_lt(zzz400000, zzz3300000, baf)
new_ltEs3(Right(zzz400000), Right(zzz3300000), bdb, app(app(app(ty_@3, bde), bdf), bdg)) → new_ltEs1(zzz400000, zzz3300000, bde, bdf, bdg)
new_primCompAux(zzz400000, zzz3300000, zzz215, app(app(ty_@2, bf), bg)) → new_compare3(zzz400000, zzz3300000, bf, bg)
new_compare20(Just(@3(zzz400000, zzz400001, zzz400002)), Just(@3(zzz3300000, zzz3300001, zzz3300002)), False, app(app(app(ty_@3, de), app(app(ty_@2, fg), fh)), fa)) → new_lt2(zzz400001, zzz3300001, fg, fh)
new_compare21(zzz400000, zzz3300000, False, ge, gf, gg) → new_ltEs1(zzz400000, zzz3300000, ge, gf, gg)
new_ltEs1(@3(zzz400000, zzz400001, zzz400002), @3(zzz3300000, zzz3300001, zzz3300002), app(app(app(ty_@3, ge), gf), gg), df, fa) → new_compare21(zzz400000, zzz3300000, new_esEs5(zzz400000, zzz3300000, ge, gf, gg), ge, gf, gg)
new_ltEs2(@2(zzz400000, zzz400001), @2(zzz3300000, zzz3300001), app(app(ty_Either, bbf), bbg), bag) → new_lt3(zzz400000, zzz3300000, bbf, bbg)
new_compare20(Just(@3(zzz400000, zzz400001, zzz400002)), Just(@3(zzz3300000, zzz3300001, zzz3300002)), False, app(app(app(ty_@3, de), df), app(app(app(ty_@3, ea), eb), ec))) → new_ltEs1(zzz400002, zzz3300002, ea, eb, ec)
new_compare20(Just(@3(zzz400000, zzz400001, zzz400002)), Just(@3(zzz3300000, zzz3300001, zzz3300002)), False, app(app(app(ty_@3, app(ty_[], gc)), df), fa)) → new_compare0(zzz400000, zzz3300000, gc)
new_compare20(Just(Just(zzz400000)), Just(Just(zzz3300000)), False, app(ty_Maybe, app(app(ty_@2, da), db))) → new_ltEs2(zzz400000, zzz3300000, da, db)
new_compare20(Just(@2(zzz400000, zzz400001)), Just(@2(zzz3300000, zzz3300001)), False, app(app(ty_@2, hd), app(app(ty_Either, bad), bae))) → new_ltEs3(zzz400001, zzz3300001, bad, bae)
new_ltEs1(@3(zzz400000, zzz400001, zzz400002), @3(zzz3300000, zzz3300001, zzz3300002), de, app(app(ty_@2, fg), fh), fa) → new_lt2(zzz400001, zzz3300001, fg, fh)
new_ltEs0(Just(zzz400000), Just(zzz3300000), app(app(ty_Either, dc), dd)) → new_ltEs3(zzz400000, zzz3300000, dc, dd)
new_ltEs(:(zzz400000, zzz400001), :(zzz3300000, zzz3300001), h) → new_primCompAux(zzz400000, zzz3300000, new_compare(zzz400001, zzz3300001, h), h)
new_ltEs3(Right(zzz400000), Right(zzz3300000), bdb, app(app(ty_@2, bdh), bea)) → new_ltEs2(zzz400000, zzz3300000, bdh, bea)
new_lt3(zzz400000, zzz3300000, hb, hc) → new_compare23(zzz400000, zzz3300000, new_esEs7(zzz400000, zzz3300000, hb, hc), hb, hc)
new_compare20(Just(Just(zzz400000)), Just(Just(zzz3300000)), False, app(ty_Maybe, app(ty_Maybe, cd))) → new_ltEs0(zzz400000, zzz3300000, cd)
new_primCompAux(zzz400000, zzz3300000, zzz215, app(ty_[], ba)) → new_compare0(zzz400000, zzz3300000, ba)
new_ltEs1(@3(zzz400000, zzz400001, zzz400002), @3(zzz3300000, zzz3300001, zzz3300002), de, df, app(app(ty_Either, ef), eg)) → new_ltEs3(zzz400002, zzz3300002, ef, eg)
new_compare20(Just(@3(zzz400000, zzz400001, zzz400002)), Just(@3(zzz3300000, zzz3300001, zzz3300002)), False, app(app(app(ty_@3, de), app(ty_[], eh)), fa)) → new_lt(zzz400001, zzz3300001, eh)
new_primCompAux(zzz400000, zzz3300000, zzz215, app(app(ty_Either, bh), ca)) → new_compare4(zzz400000, zzz3300000, bh, ca)
new_ltEs3(Left(zzz400000), Left(zzz3300000), app(app(app(ty_@3, bcc), bcd), bce), bca) → new_ltEs1(zzz400000, zzz3300000, bcc, bcd, bce)
new_ltEs3(Left(zzz400000), Left(zzz3300000), app(app(ty_@2, bcf), bcg), bca) → new_ltEs2(zzz400000, zzz3300000, bcf, bcg)
new_ltEs2(@2(zzz400000, zzz400001), @2(zzz3300000, zzz3300001), hd, app(ty_Maybe, hf)) → new_ltEs0(zzz400001, zzz3300001, hf)
new_compare20(Just(@2(zzz400000, zzz400001)), Just(@2(zzz3300000, zzz3300001)), False, app(app(ty_@2, app(app(ty_@2, bbd), bbe)), bag)) → new_lt2(zzz400000, zzz3300000, bbd, bbe)
new_compare20(Just(Just(zzz400000)), Just(Just(zzz3300000)), False, app(ty_Maybe, app(ty_[], cc))) → new_ltEs(zzz400000, zzz3300000, cc)
new_ltEs2(@2(zzz400000, zzz400001), @2(zzz3300000, zzz3300001), hd, app(app(ty_@2, bab), bac)) → new_ltEs2(zzz400001, zzz3300001, bab, bac)
new_ltEs(:(zzz400000, zzz400001), :(zzz3300000, zzz3300001), h) → new_compare0(zzz400001, zzz3300001, h)
new_ltEs1(@3(zzz400000, zzz400001, zzz400002), @3(zzz3300000, zzz3300001, zzz3300002), app(ty_Maybe, gd), df, fa) → new_lt0(zzz400000, zzz3300000, gd)
new_compare20(Just(:(zzz400000, zzz400001)), Just(:(zzz3300000, zzz3300001)), False, app(ty_[], h)) → new_primCompAux(zzz400000, zzz3300000, new_compare(zzz400001, zzz3300001, h), h)
new_ltEs0(Just(zzz400000), Just(zzz3300000), app(app(ty_@2, da), db)) → new_ltEs2(zzz400000, zzz3300000, da, db)
new_compare20(Just(Right(zzz400000)), Just(Right(zzz3300000)), False, app(app(ty_Either, bdb), app(ty_Maybe, bdd))) → new_ltEs0(zzz400000, zzz3300000, bdd)
new_ltEs1(@3(zzz400000, zzz400001, zzz400002), @3(zzz3300000, zzz3300001, zzz3300002), de, app(ty_[], eh), fa) → new_lt(zzz400001, zzz3300001, eh)
new_compare1(zzz4000, zzz33000, cb) → new_compare20(zzz4000, zzz33000, new_esEs4(zzz4000, zzz33000, cb), cb)
new_compare20(Just(@2(zzz400000, zzz400001)), Just(@2(zzz3300000, zzz3300001)), False, app(app(ty_@2, hd), app(ty_Maybe, hf))) → new_ltEs0(zzz400001, zzz3300001, hf)
new_lt(zzz400000, zzz3300000, gc) → new_compare0(zzz400000, zzz3300000, gc)
new_compare20(Just(Right(zzz400000)), Just(Right(zzz3300000)), False, app(app(ty_Either, bdb), app(app(app(ty_@3, bde), bdf), bdg))) → new_ltEs1(zzz400000, zzz3300000, bde, bdf, bdg)
new_ltEs1(@3(zzz400000, zzz400001, zzz400002), @3(zzz3300000, zzz3300001, zzz3300002), de, df, app(ty_Maybe, dh)) → new_ltEs0(zzz400002, zzz3300002, dh)
new_compare20(Just(@3(zzz400000, zzz400001, zzz400002)), Just(@3(zzz3300000, zzz3300001, zzz3300002)), False, app(app(app(ty_@3, app(app(app(ty_@3, ge), gf), gg)), df), fa)) → new_compare21(zzz400000, zzz3300000, new_esEs5(zzz400000, zzz3300000, ge, gf, gg), ge, gf, gg)
new_primCompAux(zzz400000, zzz3300000, zzz215, app(app(app(ty_@3, bc), bd), be)) → new_compare2(zzz400000, zzz3300000, bc, bd, be)
new_compare20(Just(Just(zzz400000)), Just(Just(zzz3300000)), False, app(ty_Maybe, app(app(ty_Either, dc), dd))) → new_ltEs3(zzz400000, zzz3300000, dc, dd)
new_lt2(zzz400000, zzz3300000, gh, ha) → new_compare22(zzz400000, zzz3300000, new_esEs6(zzz400000, zzz3300000, gh, ha), gh, ha)
new_compare22(zzz400000, zzz3300000, False, gh, ha) → new_ltEs2(zzz400000, zzz3300000, gh, ha)
new_ltEs3(Right(zzz400000), Right(zzz3300000), bdb, app(ty_Maybe, bdd)) → new_ltEs0(zzz400000, zzz3300000, bdd)
new_compare4(zzz400000, zzz3300000, hb, hc) → new_compare23(zzz400000, zzz3300000, new_esEs7(zzz400000, zzz3300000, hb, hc), hb, hc)
new_compare20(Just(Left(zzz400000)), Just(Left(zzz3300000)), False, app(app(ty_Either, app(app(app(ty_@3, bcc), bcd), bce)), bca)) → new_ltEs1(zzz400000, zzz3300000, bcc, bcd, bce)

The TRS R consists of the following rules:

new_esEs4(Just(zzz4000), Just(zzz3000), app(ty_Maybe, dbb)) → new_esEs4(zzz4000, zzz3000, dbb)
new_esEs23(zzz400001, zzz3300001, app(app(ty_Either, ga), gb)) → new_esEs7(zzz400001, zzz3300001, ga, gb)
new_ltEs19(zzz40000, zzz330000, ty_Integer) → new_ltEs16(zzz40000, zzz330000)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_esEs7(Left(zzz4000), Left(zzz3000), app(app(ty_Either, bgc), bgd), bgb) → new_esEs7(zzz4000, zzz3000, bgc, bgd)
new_ltEs19(zzz40000, zzz330000, app(ty_Ratio, dab)) → new_ltEs11(zzz40000, zzz330000, dab)
new_esEs21(zzz4002, zzz3002, app(app(ty_@2, cef), ceg)) → new_esEs6(zzz4002, zzz3002, cef, ceg)
new_esEs7(Right(zzz4000), Right(zzz3000), bhe, ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_ltEs15(Right(zzz400000), Right(zzz3300000), bdb, app(ty_Maybe, bdd)) → new_ltEs8(zzz400000, zzz3300000, bdd)
new_lt14(zzz400000, zzz3300000, ty_Integer) → new_lt7(zzz400000, zzz3300000)
new_ltEs18(zzz400002, zzz3300002, ty_Int) → new_ltEs12(zzz400002, zzz3300002)
new_esEs24(zzz4000, zzz3000, app(app(app(ty_@3, cgb), cgc), cgd)) → new_esEs5(zzz4000, zzz3000, cgb, cgc, cgd)
new_esEs17(Char(zzz4000), Char(zzz3000)) → new_primEqNat0(zzz4000, zzz3000)
new_esEs20(zzz4001, zzz3001, ty_Bool) → new_esEs12(zzz4001, zzz3001)
new_esEs7(Left(zzz4000), Left(zzz3000), app(ty_Maybe, bgf), bgb) → new_esEs4(zzz4000, zzz3000, bgf)
new_esEs24(zzz4000, zzz3000, ty_Char) → new_esEs17(zzz4000, zzz3000)
new_ltEs15(Right(zzz400000), Right(zzz3300000), bdb, ty_Float) → new_ltEs9(zzz400000, zzz3300000)
new_ltEs20(zzz400001, zzz3300001, app(ty_[], he)) → new_ltEs10(zzz400001, zzz3300001, he)
new_compare([], :(zzz3300000, zzz3300001), h) → LT
new_compare10(zzz400000, zzz3300000, True, gh, ha) → LT
new_lt13(zzz400001, zzz3300001, app(app(app(ty_@3, fc), fd), ff)) → new_lt8(zzz400001, zzz3300001, fc, fd, ff)
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(app(app(ty_@3, ce), cf), cg)) → new_ltEs13(zzz400000, zzz3300000, ce, cf, cg)
new_esEs24(zzz4000, zzz3000, app(ty_Maybe, cga)) → new_esEs4(zzz4000, zzz3000, cga)
new_esEs19(zzz4000, zzz3000, ty_Float) → new_esEs15(zzz4000, zzz3000)
new_esEs4(Nothing, Just(zzz3000), daf) → False
new_esEs4(Just(zzz4000), Nothing, daf) → False
new_lt20(zzz400000, zzz3300000, app(app(app(ty_@3, bba), bbb), bbc)) → new_lt8(zzz400000, zzz3300000, bba, bbb, bbc)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Char) → new_esEs17(zzz4000, zzz3000)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_@0) → new_esEs14(zzz4000, zzz3000)
new_esEs25(zzz4001, zzz3001, ty_Char) → new_esEs17(zzz4001, zzz3001)
new_ltEs20(zzz400001, zzz3300001, ty_Double) → new_ltEs7(zzz400001, zzz3300001)
new_primMulNat0(Zero, Zero) → Zero
new_esEs7(Left(zzz4000), Left(zzz3000), app(app(app(ty_@3, bgg), bgh), bha), bgb) → new_esEs5(zzz4000, zzz3000, bgg, bgh, bha)
new_esEs26(zzz400000, zzz3300000, ty_Float) → new_esEs15(zzz400000, zzz3300000)
new_esEs7(Right(zzz4000), Right(zzz3000), bhe, ty_Double) → new_esEs16(zzz4000, zzz3000)
new_compare(:(zzz400000, zzz400001), [], h) → GT
new_compare11(zzz400000, zzz3300000, ty_Int) → new_compare7(zzz400000, zzz3300000)
new_lt14(zzz400000, zzz3300000, ty_Ordering) → new_lt6(zzz400000, zzz3300000)
new_compare29(zzz400000, zzz3300000, True) → EQ
new_esEs23(zzz400001, zzz3300001, app(ty_Ratio, cfb)) → new_esEs13(zzz400001, zzz3300001, cfb)
new_esEs12(True, True) → True
new_ltEs18(zzz400002, zzz3300002, ty_Integer) → new_ltEs16(zzz400002, zzz3300002)
new_ltEs18(zzz400002, zzz3300002, ty_@0) → new_ltEs5(zzz400002, zzz3300002)
new_esEs20(zzz4001, zzz3001, app(ty_Maybe, ccg)) → new_esEs4(zzz4001, zzz3001, ccg)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Double, bca) → new_ltEs7(zzz400000, zzz3300000)
new_esEs21(zzz4002, zzz3002, app(ty_[], cee)) → new_esEs10(zzz4002, zzz3002, cee)
new_esEs22(zzz400000, zzz3300000, ty_Char) → new_esEs17(zzz400000, zzz3300000)
new_ltEs20(zzz400001, zzz3300001, app(ty_Maybe, hf)) → new_ltEs8(zzz400001, zzz3300001, hf)
new_esEs23(zzz400001, zzz3300001, ty_Bool) → new_esEs12(zzz400001, zzz3300001)
new_esEs7(Right(zzz4000), Right(zzz3000), bhe, ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_ltEs18(zzz400002, zzz3300002, ty_Char) → new_ltEs17(zzz400002, zzz3300002)
new_compare11(zzz400000, zzz3300000, app(ty_Maybe, bb)) → new_compare13(zzz400000, zzz3300000, bb)
new_ltEs15(Right(zzz400000), Right(zzz3300000), bdb, ty_@0) → new_ltEs5(zzz400000, zzz3300000)
new_ltEs14(False, True) → True
new_esEs24(zzz4000, zzz3000, ty_@0) → new_esEs14(zzz4000, zzz3000)
new_esEs25(zzz4001, zzz3001, ty_Double) → new_esEs16(zzz4001, zzz3001)
new_lt14(zzz400000, zzz3300000, app(app(ty_Either, hb), hc)) → new_lt18(zzz400000, zzz3300000, hb, hc)
new_esEs23(zzz400001, zzz3300001, app(ty_Maybe, fb)) → new_esEs4(zzz400001, zzz3300001, fb)
new_compare26(zzz400000, zzz3300000, False, hb, hc) → new_compare114(zzz400000, zzz3300000, new_ltEs15(zzz400000, zzz3300000, hb, hc), hb, hc)
new_esEs7(Right(zzz4000), Right(zzz3000), bhe, app(ty_[], cae)) → new_esEs10(zzz4000, zzz3000, cae)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Char, bca) → new_ltEs17(zzz400000, zzz3300000)
new_esEs7(Right(zzz4000), Right(zzz3000), bhe, app(app(app(ty_@3, cab), cac), cad)) → new_esEs5(zzz4000, zzz3000, cab, cac, cad)
new_esEs26(zzz400000, zzz3300000, app(ty_[], baf)) → new_esEs10(zzz400000, zzz3300000, baf)
new_esEs20(zzz4001, zzz3001, app(ty_Ratio, ccf)) → new_esEs13(zzz4001, zzz3001, ccf)
new_compare11(zzz400000, zzz3300000, ty_Integer) → new_compare18(zzz400000, zzz3300000)
new_esEs22(zzz400000, zzz3300000, ty_Integer) → new_esEs9(zzz400000, zzz3300000)
new_compare15(zzz400000, zzz3300000) → new_compare29(zzz400000, zzz3300000, new_esEs12(zzz400000, zzz3300000))
new_lt13(zzz400001, zzz3300001, app(app(ty_Either, ga), gb)) → new_lt18(zzz400001, zzz3300001, ga, gb)
new_ltEs9(zzz40000, zzz330000) → new_fsEs(new_compare12(zzz40000, zzz330000))
new_ltEs20(zzz400001, zzz3300001, ty_Integer) → new_ltEs16(zzz400001, zzz3300001)
new_lt20(zzz400000, zzz3300000, app(ty_Maybe, bah)) → new_lt15(zzz400000, zzz3300000, bah)
new_lt14(zzz400000, zzz3300000, ty_Char) → new_lt12(zzz400000, zzz3300000)
new_esEs19(zzz4000, zzz3000, app(app(app(ty_@3, cbf), cbg), cbh)) → new_esEs5(zzz4000, zzz3000, cbf, cbg, cbh)
new_esEs19(zzz4000, zzz3000, ty_@0) → new_esEs14(zzz4000, zzz3000)
new_esEs26(zzz400000, zzz3300000, app(ty_Maybe, bah)) → new_esEs4(zzz400000, zzz3300000, bah)
new_esEs20(zzz4001, zzz3001, app(app(ty_@2, cdd), cde)) → new_esEs6(zzz4001, zzz3001, cdd, cde)
new_ltEs15(Right(zzz400000), Right(zzz3300000), bdb, app(app(ty_@2, bdh), bea)) → new_ltEs4(zzz400000, zzz3300000, bdh, bea)
new_lt13(zzz400001, zzz3300001, ty_Char) → new_lt12(zzz400001, zzz3300001)
new_esEs20(zzz4001, zzz3001, ty_@0) → new_esEs14(zzz4001, zzz3001)
new_esEs22(zzz400000, zzz3300000, app(app(ty_Either, hb), hc)) → new_esEs7(zzz400000, zzz3300000, hb, hc)
new_lt13(zzz400001, zzz3300001, app(ty_[], eh)) → new_lt4(zzz400001, zzz3300001, eh)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Ordering, bca) → new_ltEs6(zzz400000, zzz3300000)
new_lt7(zzz400000, zzz3300000) → new_esEs8(new_compare18(zzz400000, zzz3300000), LT)
new_esEs25(zzz4001, zzz3001, app(ty_[], chg)) → new_esEs10(zzz4001, zzz3001, chg)
new_esEs28(zzz4001, zzz3001, ty_Int) → new_esEs18(zzz4001, zzz3001)
new_pePe(False, zzz214) → zzz214
new_esEs19(zzz4000, zzz3000, app(ty_[], cca)) → new_esEs10(zzz4000, zzz3000, cca)
new_compare27(Just(zzz40000), Just(zzz330000), False, cb) → new_compare110(zzz40000, zzz330000, new_ltEs19(zzz40000, zzz330000, cb), cb)
new_esEs7(Left(zzz4000), Left(zzz3000), app(ty_[], bhb), bgb) → new_esEs10(zzz4000, zzz3000, bhb)
new_esEs7(Left(zzz4000), Right(zzz3000), bhe, bgb) → False
new_esEs7(Right(zzz4000), Left(zzz3000), bhe, bgb) → False
new_esEs27(zzz4000, zzz3000, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_compare11(zzz400000, zzz3300000, app(ty_[], ba)) → new_compare(zzz400000, zzz3300000, ba)
new_lt20(zzz400000, zzz3300000, ty_Bool) → new_lt11(zzz400000, zzz3300000)
new_lt15(zzz4000, zzz33000, cb) → new_esEs8(new_compare13(zzz4000, zzz33000, cb), LT)
new_lt9(zzz4000, zzz33000) → new_esEs8(new_compare7(zzz4000, zzz33000), LT)
new_esEs20(zzz4001, zzz3001, ty_Double) → new_esEs16(zzz4001, zzz3001)
new_ltEs19(zzz40000, zzz330000, app(app(ty_@2, hd), bag)) → new_ltEs4(zzz40000, zzz330000, hd, bag)
new_lt4(zzz400000, zzz3300000, gc) → new_esEs8(new_compare(zzz400000, zzz3300000, gc), LT)
new_esEs11(zzz4000, zzz3000, ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_lt20(zzz400000, zzz3300000, ty_Float) → new_lt10(zzz400000, zzz3300000)
new_lt6(zzz400000, zzz3300000) → new_esEs8(new_compare8(zzz400000, zzz3300000), LT)
new_ltEs10(zzz40000, zzz330000, h) → new_fsEs(new_compare(zzz40000, zzz330000, h))
new_esEs26(zzz400000, zzz3300000, ty_Bool) → new_esEs12(zzz400000, zzz3300000)
new_lt20(zzz400000, zzz3300000, app(app(ty_@2, bbd), bbe)) → new_lt17(zzz400000, zzz3300000, bbd, bbe)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_ltEs6(GT, EQ) → False
new_esEs22(zzz400000, zzz3300000, ty_Ordering) → new_esEs8(zzz400000, zzz3300000)
new_esEs19(zzz4000, zzz3000, app(app(ty_Either, cbc), cbd)) → new_esEs7(zzz4000, zzz3000, cbc, cbd)
new_esEs21(zzz4002, zzz3002, ty_Int) → new_esEs18(zzz4002, zzz3002)
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_compare111(zzz400000, zzz3300000, False) → GT
new_esEs18(zzz400, zzz300) → new_primEqInt(zzz400, zzz300)
new_compare111(zzz400000, zzz3300000, True) → LT
new_ltEs20(zzz400001, zzz3300001, app(app(ty_@2, bab), bac)) → new_ltEs4(zzz400001, zzz3300001, bab, bac)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_esEs22(zzz400000, zzz3300000, ty_Float) → new_esEs15(zzz400000, zzz3300000)
new_ltEs11(zzz40000, zzz330000, dab) → new_fsEs(new_compare5(zzz40000, zzz330000, dab))
new_ltEs8(Nothing, Just(zzz3300000), ceh) → True
new_ltEs20(zzz400001, zzz3300001, ty_Bool) → new_ltEs14(zzz400001, zzz3300001)
new_compare27(Nothing, Just(zzz330000), False, cb) → LT
new_lt20(zzz400000, zzz3300000, ty_Ordering) → new_lt6(zzz400000, zzz3300000)
new_esEs25(zzz4001, zzz3001, app(app(ty_@2, chh), daa)) → new_esEs6(zzz4001, zzz3001, chh, daa)
new_esEs8(LT, LT) → True
new_ltEs4(@2(zzz400000, zzz400001), @2(zzz3300000, zzz3300001), hd, bag) → new_pePe(new_lt20(zzz400000, zzz3300000, hd), new_asAs(new_esEs26(zzz400000, zzz3300000, hd), new_ltEs20(zzz400001, zzz3300001, bag)))
new_compare25(zzz400000, zzz3300000, True, ge, gf, gg) → EQ
new_esEs19(zzz4000, zzz3000, app(ty_Maybe, cb)) → new_esEs4(zzz4000, zzz3000, cb)
new_esEs21(zzz4002, zzz3002, app(ty_Ratio, cdh)) → new_esEs13(zzz4002, zzz3002, cdh)
new_lt13(zzz400001, zzz3300001, ty_Int) → new_lt9(zzz400001, zzz3300001)
new_compare17(zzz400000, zzz3300000, hb, hc) → new_compare26(zzz400000, zzz3300000, new_esEs7(zzz400000, zzz3300000, hb, hc), hb, hc)
new_esEs19(zzz4000, zzz3000, ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_esEs25(zzz4001, zzz3001, ty_Ordering) → new_esEs8(zzz4001, zzz3001)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Int) → new_ltEs12(zzz400000, zzz3300000)
new_esEs25(zzz4001, zzz3001, app(ty_Ratio, chb)) → new_esEs13(zzz4001, zzz3001, chb)
new_esEs24(zzz4000, zzz3000, app(app(ty_Either, cff), cfg)) → new_esEs7(zzz4000, zzz3000, cff, cfg)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Double) → new_ltEs7(zzz400000, zzz3300000)
new_lt14(zzz400000, zzz3300000, ty_@0) → new_lt16(zzz400000, zzz3300000)
new_esEs7(Right(zzz4000), Right(zzz3000), bhe, ty_Float) → new_esEs15(zzz4000, zzz3000)
new_esEs24(zzz4000, zzz3000, app(app(ty_@2, cgf), cgg)) → new_esEs6(zzz4000, zzz3000, cgf, cgg)
new_esEs22(zzz400000, zzz3300000, ty_Int) → new_esEs18(zzz400000, zzz3300000)
new_pePe(True, zzz214) → True
new_primEqNat0(Zero, Zero) → True
new_esEs26(zzz400000, zzz3300000, ty_Char) → new_esEs17(zzz400000, zzz3300000)
new_esEs19(zzz4000, zzz3000, app(ty_Ratio, cbe)) → new_esEs13(zzz4000, zzz3000, cbe)
new_esEs14(@0, @0) → True
new_esEs23(zzz400001, zzz3300001, ty_Integer) → new_esEs9(zzz400001, zzz3300001)
new_esEs26(zzz400000, zzz3300000, app(ty_Ratio, dac)) → new_esEs13(zzz400000, zzz3300000, dac)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Bool) → new_ltEs14(zzz400000, zzz3300000)
new_ltEs19(zzz40000, zzz330000, ty_@0) → new_ltEs5(zzz40000, zzz330000)
new_lt20(zzz400000, zzz3300000, ty_Integer) → new_lt7(zzz400000, zzz3300000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(ty_[], bbh), bca) → new_ltEs10(zzz400000, zzz3300000, bbh)
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Ordering, bgb) → new_esEs8(zzz4000, zzz3000)
new_lt13(zzz400001, zzz3300001, ty_Float) → new_lt10(zzz400001, zzz3300001)
new_compare(:(zzz400000, zzz400001), :(zzz3300000, zzz3300001), h) → new_primCompAux1(zzz400000, zzz3300000, new_compare(zzz400001, zzz3300001, h), h)
new_ltEs19(zzz40000, zzz330000, ty_Ordering) → new_ltEs6(zzz40000, zzz330000)
new_sr(zzz4001, zzz3001) → new_primMulInt(zzz4001, zzz3001)
new_esEs4(Just(zzz4000), Just(zzz3000), app(ty_[], dbf)) → new_esEs10(zzz4000, zzz3000, dbf)
new_compare7(zzz400, zzz3300) → new_primCmpInt(zzz400, zzz3300)
new_esEs24(zzz4000, zzz3000, ty_Double) → new_esEs16(zzz4000, zzz3000)
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(app(ty_Either, dc), dd)) → new_ltEs15(zzz400000, zzz3300000, dc, dd)
new_compare12(Float(zzz400000, zzz400001), Float(zzz3300000, zzz3300001)) → new_compare7(new_sr(zzz400000, zzz3300000), new_sr(zzz400001, zzz3300001))
new_esEs26(zzz400000, zzz3300000, ty_Ordering) → new_esEs8(zzz400000, zzz3300000)
new_ltEs6(EQ, GT) → True
new_esEs8(GT, GT) → True
new_ltEs20(zzz400001, zzz3300001, app(ty_Ratio, dad)) → new_ltEs11(zzz400001, zzz3300001, dad)
new_esEs20(zzz4001, zzz3001, ty_Integer) → new_esEs9(zzz4001, zzz3001)
new_esEs21(zzz4002, zzz3002, ty_Double) → new_esEs16(zzz4002, zzz3002)
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_ltEs18(zzz400002, zzz3300002, ty_Ordering) → new_ltEs6(zzz400002, zzz3300002)
new_esEs11(zzz4000, zzz3000, ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_esEs7(Right(zzz4000), Right(zzz3000), bhe, app(app(ty_Either, bhf), bhg)) → new_esEs7(zzz4000, zzz3000, bhf, bhg)
new_esEs12(False, False) → True
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(ty_[], cc)) → new_ltEs10(zzz400000, zzz3300000, cc)
new_esEs8(GT, LT) → False
new_esEs8(LT, GT) → False
new_ltEs18(zzz400002, zzz3300002, ty_Double) → new_ltEs7(zzz400002, zzz3300002)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_@0, bca) → new_ltEs5(zzz400000, zzz3300000)
new_primEqInt(Neg(Succ(zzz40000)), Neg(Succ(zzz30000))) → new_primEqNat0(zzz40000, zzz30000)
new_esEs7(Right(zzz4000), Right(zzz3000), bhe, ty_Char) → new_esEs17(zzz4000, zzz3000)
new_lt14(zzz400000, zzz3300000, app(ty_[], gc)) → new_lt4(zzz400000, zzz3300000, gc)
new_esEs20(zzz4001, zzz3001, ty_Ordering) → new_esEs8(zzz4001, zzz3001)
new_esEs23(zzz400001, zzz3300001, ty_Ordering) → new_esEs8(zzz400001, zzz3300001)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_compare27(Just(zzz40000), Nothing, False, cb) → GT
new_primCompAux1(zzz400000, zzz3300000, zzz215, h) → new_primCompAux0(zzz215, new_compare11(zzz400000, zzz3300000, h))
new_lt14(zzz400000, zzz3300000, app(ty_Ratio, bed)) → new_lt5(zzz400000, zzz3300000, bed)
new_ltEs15(Right(zzz400000), Right(zzz3300000), bdb, app(app(app(ty_@3, bde), bdf), bdg)) → new_ltEs13(zzz400000, zzz3300000, bde, bdf, bdg)
new_esEs7(Right(zzz4000), Right(zzz3000), bhe, app(ty_Ratio, bhh)) → new_esEs13(zzz4000, zzz3000, bhh)
new_ltEs19(zzz40000, zzz330000, ty_Float) → new_ltEs9(zzz40000, zzz330000)
new_compare27(Nothing, Nothing, False, cb) → LT
new_esEs25(zzz4001, zzz3001, ty_Int) → new_esEs18(zzz4001, zzz3001)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Char) → new_ltEs17(zzz400000, zzz3300000)
new_primEqInt(Neg(Zero), Neg(Zero)) → True
new_esEs7(Left(zzz4000), Left(zzz3000), app(ty_Ratio, bge), bgb) → new_esEs13(zzz4000, zzz3000, bge)
new_esEs7(Left(zzz4000), Left(zzz3000), app(app(ty_@2, bhc), bhd), bgb) → new_esEs6(zzz4000, zzz3000, bhc, bhd)
new_ltEs15(Right(zzz400000), Right(zzz3300000), bdb, ty_Double) → new_ltEs7(zzz400000, zzz3300000)
new_ltEs6(EQ, EQ) → True
new_esEs11(zzz4000, zzz3000, app(app(app(ty_@3, bfd), bfe), bff)) → new_esEs5(zzz4000, zzz3000, bfd, bfe, bff)
new_esEs11(zzz4000, zzz3000, ty_Float) → new_esEs15(zzz4000, zzz3000)
new_primEqInt(Neg(Zero), Neg(Succ(zzz30000))) → False
new_primEqInt(Neg(Succ(zzz40000)), Neg(Zero)) → False
new_primCompAux0(zzz220, GT) → GT
new_ltEs17(zzz40000, zzz330000) → new_fsEs(new_compare19(zzz40000, zzz330000))
new_esEs8(EQ, EQ) → True
new_compare26(zzz400000, zzz3300000, True, hb, hc) → EQ
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Bool, bca) → new_ltEs14(zzz400000, zzz3300000)
new_ltEs6(GT, GT) → True
new_esEs24(zzz4000, zzz3000, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_ltEs13(@3(zzz400000, zzz400001, zzz400002), @3(zzz3300000, zzz3300001, zzz3300002), de, df, fa) → new_pePe(new_lt14(zzz400000, zzz3300000, de), new_asAs(new_esEs22(zzz400000, zzz3300000, de), new_pePe(new_lt13(zzz400001, zzz3300001, df), new_asAs(new_esEs23(zzz400001, zzz3300001, df), new_ltEs18(zzz400002, zzz3300002, fa)))))
new_compare24(zzz400000, zzz3300000, True, gh, ha) → EQ
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(ty_Maybe, bcb), bca) → new_ltEs8(zzz400000, zzz3300000, bcb)
new_ltEs19(zzz40000, zzz330000, ty_Char) → new_ltEs17(zzz40000, zzz330000)
new_esEs22(zzz400000, zzz3300000, app(app(app(ty_@3, ge), gf), gg)) → new_esEs5(zzz400000, zzz3300000, ge, gf, gg)
new_compare([], [], h) → EQ
new_compare11(zzz400000, zzz3300000, app(app(ty_@2, bf), bg)) → new_compare16(zzz400000, zzz3300000, bf, bg)
new_esEs26(zzz400000, zzz3300000, app(app(ty_Either, bbf), bbg)) → new_esEs7(zzz400000, zzz3300000, bbf, bbg)
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_esEs10([], :(zzz3000, zzz3001), beg) → False
new_esEs10(:(zzz4000, zzz4001), [], beg) → False
new_ltEs19(zzz40000, zzz330000, ty_Double) → new_ltEs7(zzz40000, zzz330000)
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_esEs4(Just(zzz4000), Just(zzz3000), app(app(ty_Either, dag), dah)) → new_esEs7(zzz4000, zzz3000, dag, dah)
new_esEs22(zzz400000, zzz3300000, app(ty_Maybe, gd)) → new_esEs4(zzz400000, zzz3300000, gd)
new_esEs9(Integer(zzz4000), Integer(zzz3000)) → new_primEqInt(zzz4000, zzz3000)
new_esEs7(Right(zzz4000), Right(zzz3000), bhe, app(app(ty_@2, caf), cag)) → new_esEs6(zzz4000, zzz3000, caf, cag)
new_esEs25(zzz4001, zzz3001, app(ty_Maybe, chc)) → new_esEs4(zzz4001, zzz3001, chc)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Int) → new_esEs18(zzz4000, zzz3000)
new_primEqInt(Pos(Succ(zzz40000)), Pos(Succ(zzz30000))) → new_primEqNat0(zzz40000, zzz30000)
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(ty_Ratio, cfa)) → new_ltEs11(zzz400000, zzz3300000, cfa)
new_compare10(zzz400000, zzz3300000, False, gh, ha) → GT
new_esEs6(@2(zzz4000, zzz4001), @2(zzz3000, zzz3001), cfd, cfe) → new_asAs(new_esEs24(zzz4000, zzz3000, cfd), new_esEs25(zzz4001, zzz3001, cfe))
new_compare11(zzz400000, zzz3300000, app(ty_Ratio, bee)) → new_compare5(zzz400000, zzz3300000, bee)
new_ltEs19(zzz40000, zzz330000, ty_Bool) → new_ltEs14(zzz40000, zzz330000)
new_ltEs18(zzz400002, zzz3300002, app(app(ty_Either, ef), eg)) → new_ltEs15(zzz400002, zzz3300002, ef, eg)
new_esEs23(zzz400001, zzz3300001, ty_Char) → new_esEs17(zzz400001, zzz3300001)
new_esEs10([], [], beg) → True
new_esEs24(zzz4000, zzz3000, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_lt14(zzz400000, zzz3300000, ty_Double) → new_lt19(zzz400000, zzz3300000)
new_primEqNat0(Succ(zzz40000), Succ(zzz30000)) → new_primEqNat0(zzz40000, zzz30000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Int, bca) → new_ltEs12(zzz400000, zzz3300000)
new_ltEs14(False, False) → True
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Integer, bgb) → new_esEs9(zzz4000, zzz3000)
new_esEs19(zzz4000, zzz3000, app(app(ty_@2, ccb), ccc)) → new_esEs6(zzz4000, zzz3000, ccb, ccc)
new_esEs4(Just(zzz4000), Just(zzz3000), app(app(app(ty_@3, dbc), dbd), dbe)) → new_esEs5(zzz4000, zzz3000, dbc, dbd, dbe)
new_esEs22(zzz400000, zzz3300000, ty_Bool) → new_esEs12(zzz400000, zzz3300000)
new_compare6(Double(zzz400000, zzz400001), Double(zzz3300000, zzz3300001)) → new_compare7(new_sr(zzz400000, zzz3300000), new_sr(zzz400001, zzz3300001))
new_lt11(zzz400000, zzz3300000) → new_esEs8(new_compare15(zzz400000, zzz3300000), LT)
new_compare114(zzz400000, zzz3300000, True, hb, hc) → LT
new_esEs24(zzz4000, zzz3000, ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_esEs20(zzz4001, zzz3001, ty_Float) → new_esEs15(zzz4001, zzz3001)
new_ltEs8(Just(zzz400000), Nothing, ceh) → False
new_compare5(:%(zzz400000, zzz400001), :%(zzz3300000, zzz3300001), ty_Integer) → new_compare18(new_sr0(zzz400000, zzz3300001), new_sr0(zzz3300000, zzz400001))
new_esEs11(zzz4000, zzz3000, app(ty_Maybe, bfc)) → new_esEs4(zzz4000, zzz3000, bfc)
new_compare24(zzz400000, zzz3300000, False, gh, ha) → new_compare10(zzz400000, zzz3300000, new_ltEs4(zzz400000, zzz3300000, gh, ha), gh, ha)
new_compare19(Char(zzz400000), Char(zzz3300000)) → new_primCmpNat0(zzz400000, zzz3300000)
new_lt20(zzz400000, zzz3300000, app(ty_Ratio, dac)) → new_lt5(zzz400000, zzz3300000, dac)
new_esEs8(EQ, LT) → False
new_esEs8(LT, EQ) → False
new_primEqInt(Pos(Zero), Pos(Succ(zzz30000))) → False
new_primEqInt(Pos(Succ(zzz40000)), Pos(Zero)) → False
new_esEs24(zzz4000, zzz3000, ty_Float) → new_esEs15(zzz4000, zzz3000)
new_primCmpNat0(Zero, Zero) → EQ
new_lt14(zzz400000, zzz3300000, app(app(app(ty_@3, ge), gf), gg)) → new_lt8(zzz400000, zzz3300000, ge, gf, gg)
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_esEs19(zzz4000, zzz3000, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_compare11(zzz400000, zzz3300000, ty_Char) → new_compare19(zzz400000, zzz3300000)
new_lt12(zzz400000, zzz3300000) → new_esEs8(new_compare19(zzz400000, zzz3300000), LT)
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_compare9(@0, @0) → EQ
new_esEs21(zzz4002, zzz3002, ty_Float) → new_esEs15(zzz4002, zzz3002)
new_esEs22(zzz400000, zzz3300000, app(ty_Ratio, bed)) → new_esEs13(zzz400000, zzz3300000, bed)
new_esEs27(zzz4000, zzz3000, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_sr0(Integer(zzz33000000), Integer(zzz4000010)) → Integer(new_primMulInt(zzz33000000, zzz4000010))
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primEqInt(Neg(Succ(zzz40000)), Pos(zzz3000)) → False
new_primEqInt(Pos(Succ(zzz40000)), Neg(zzz3000)) → False
new_esEs24(zzz4000, zzz3000, app(ty_Ratio, cfh)) → new_esEs13(zzz4000, zzz3000, cfh)
new_esEs4(Just(zzz4000), Just(zzz3000), app(app(ty_@2, dbg), dbh)) → new_esEs6(zzz4000, zzz3000, dbg, dbh)
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Float, bgb) → new_esEs15(zzz4000, zzz3000)
new_compare18(Integer(zzz400000), Integer(zzz3300000)) → new_primCmpInt(zzz400000, zzz3300000)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Ordering) → new_ltEs6(zzz400000, zzz3300000)
new_esEs22(zzz400000, zzz3300000, app(app(ty_@2, gh), ha)) → new_esEs6(zzz400000, zzz3300000, gh, ha)
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primEqInt(Neg(Zero), Pos(Succ(zzz30000))) → False
new_primEqInt(Pos(Zero), Neg(Succ(zzz30000))) → False
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Float) → new_ltEs9(zzz400000, zzz3300000)
new_lt8(zzz400000, zzz3300000, ge, gf, gg) → new_esEs8(new_compare14(zzz400000, zzz3300000, ge, gf, gg), LT)
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_ltEs18(zzz400002, zzz3300002, app(ty_Ratio, cfc)) → new_ltEs11(zzz400002, zzz3300002, cfc)
new_esEs7(Right(zzz4000), Right(zzz3000), bhe, app(ty_Maybe, caa)) → new_esEs4(zzz4000, zzz3000, caa)
new_esEs25(zzz4001, zzz3001, ty_@0) → new_esEs14(zzz4001, zzz3001)
new_ltEs15(Right(zzz400000), Right(zzz3300000), bdb, ty_Char) → new_ltEs17(zzz400000, zzz3300000)
new_compare11(zzz400000, zzz3300000, app(app(app(ty_@3, bc), bd), be)) → new_compare14(zzz400000, zzz3300000, bc, bd, be)
new_esEs23(zzz400001, zzz3300001, ty_Int) → new_esEs18(zzz400001, zzz3300001)
new_ltEs5(zzz40000, zzz330000) → new_fsEs(new_compare9(zzz40000, zzz330000))
new_esEs25(zzz4001, zzz3001, ty_Float) → new_esEs15(zzz4001, zzz3001)
new_esEs8(GT, EQ) → False
new_esEs8(EQ, GT) → False
new_compare13(zzz4000, zzz33000, cb) → new_compare27(zzz4000, zzz33000, new_esEs4(zzz4000, zzz33000, cb), cb)
new_esEs16(Double(zzz4000, zzz4001), Double(zzz3000, zzz3001)) → new_esEs18(new_sr(zzz4000, zzz3000), new_sr(zzz4001, zzz3001))
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Float) → new_esEs15(zzz4000, zzz3000)
new_ltEs19(zzz40000, zzz330000, app(app(app(ty_@3, de), df), fa)) → new_ltEs13(zzz40000, zzz330000, de, df, fa)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_lt20(zzz400000, zzz3300000, ty_@0) → new_lt16(zzz400000, zzz3300000)
new_esEs10(:(zzz4000, zzz4001), :(zzz3000, zzz3001), beg) → new_asAs(new_esEs11(zzz4000, zzz3000, beg), new_esEs10(zzz4001, zzz3001, beg))
new_primCompAux0(zzz220, LT) → LT
new_esEs7(Right(zzz4000), Right(zzz3000), bhe, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_@0) → new_ltEs5(zzz400000, zzz3300000)
new_lt13(zzz400001, zzz3300001, ty_Bool) → new_lt11(zzz400001, zzz3300001)
new_compare16(zzz400000, zzz3300000, gh, ha) → new_compare24(zzz400000, zzz3300000, new_esEs6(zzz400000, zzz3300000, gh, ha), gh, ha)
new_compare11(zzz400000, zzz3300000, ty_Double) → new_compare6(zzz400000, zzz3300000)
new_compare113(zzz400000, zzz3300000, True) → LT
new_compare114(zzz400000, zzz3300000, False, hb, hc) → GT
new_not(False) → True
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Int, bgb) → new_esEs18(zzz4000, zzz3000)
new_compare110(zzz195, zzz196, True, bef) → LT
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Double, bgb) → new_esEs16(zzz4000, zzz3000)
new_lt16(zzz400000, zzz3300000) → new_esEs8(new_compare9(zzz400000, zzz3300000), LT)
new_ltEs19(zzz40000, zzz330000, app(ty_[], h)) → new_ltEs10(zzz40000, zzz330000, h)
new_lt13(zzz400001, zzz3300001, ty_Integer) → new_lt7(zzz400001, zzz3300001)
new_esEs23(zzz400001, zzz3300001, app(app(ty_@2, fg), fh)) → new_esEs6(zzz400001, zzz3300001, fg, fh)
new_esEs19(zzz4000, zzz3000, ty_Char) → new_esEs17(zzz4000, zzz3000)
new_compare113(zzz400000, zzz3300000, False) → GT
new_esEs7(Right(zzz4000), Right(zzz3000), bhe, ty_@0) → new_esEs14(zzz4000, zzz3000)
new_esEs26(zzz400000, zzz3300000, ty_Int) → new_esEs18(zzz400000, zzz3300000)
new_esEs11(zzz4000, zzz3000, ty_Double) → new_esEs16(zzz4000, zzz3000)
new_esEs11(zzz4000, zzz3000, ty_@0) → new_esEs14(zzz4000, zzz3000)
new_lt13(zzz400001, zzz3300001, app(ty_Ratio, cfb)) → new_lt5(zzz400001, zzz3300001, cfb)
new_esEs23(zzz400001, zzz3300001, app(ty_[], eh)) → new_esEs10(zzz400001, zzz3300001, eh)
new_ltEs19(zzz40000, zzz330000, app(app(ty_Either, bdb), bca)) → new_ltEs15(zzz40000, zzz330000, bdb, bca)
new_esEs19(zzz4000, zzz3000, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_compare28(zzz400000, zzz3300000, True) → EQ
new_lt13(zzz400001, zzz3300001, app(app(ty_@2, fg), fh)) → new_lt17(zzz400001, zzz3300001, fg, fh)
new_esEs20(zzz4001, zzz3001, ty_Int) → new_esEs18(zzz4001, zzz3001)
new_esEs20(zzz4001, zzz3001, app(app(app(ty_@3, cch), cda), cdb)) → new_esEs5(zzz4001, zzz3001, cch, cda, cdb)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_esEs21(zzz4002, zzz3002, app(app(app(ty_@3, ceb), cec), ced)) → new_esEs5(zzz4002, zzz3002, ceb, cec, ced)
new_lt14(zzz400000, zzz3300000, ty_Int) → new_lt9(zzz400000, zzz3300000)
new_esEs7(Right(zzz4000), Right(zzz3000), bhe, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_ltEs18(zzz400002, zzz3300002, ty_Float) → new_ltEs9(zzz400002, zzz3300002)
new_esEs5(@3(zzz4000, zzz4001, zzz4002), @3(zzz3000, zzz3001, zzz3002), cah, cba, cbb) → new_asAs(new_esEs19(zzz4000, zzz3000, cah), new_asAs(new_esEs20(zzz4001, zzz3001, cba), new_esEs21(zzz4002, zzz3002, cbb)))
new_esEs7(Left(zzz4000), Left(zzz3000), ty_@0, bgb) → new_esEs14(zzz4000, zzz3000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(app(app(ty_@3, bcc), bcd), bce), bca) → new_ltEs13(zzz400000, zzz3300000, bcc, bcd, bce)
new_ltEs19(zzz40000, zzz330000, app(ty_Maybe, ceh)) → new_ltEs8(zzz40000, zzz330000, ceh)
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primEqNat0(Succ(zzz40000), Zero) → False
new_primEqNat0(Zero, Succ(zzz30000)) → False
new_ltEs19(zzz40000, zzz330000, ty_Int) → new_ltEs12(zzz40000, zzz330000)
new_ltEs6(LT, LT) → True
new_lt20(zzz400000, zzz3300000, app(app(ty_Either, bbf), bbg)) → new_lt18(zzz400000, zzz3300000, bbf, bbg)
new_ltEs6(EQ, LT) → False
new_esEs20(zzz4001, zzz3001, app(ty_[], cdc)) → new_esEs10(zzz4001, zzz3001, cdc)
new_ltEs14(True, True) → True
new_primEqInt(Pos(Zero), Pos(Zero)) → True
new_ltEs12(zzz40000, zzz330000) → new_fsEs(new_compare7(zzz40000, zzz330000))
new_esEs4(Nothing, Nothing, daf) → True
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Char, bgb) → new_esEs17(zzz4000, zzz3000)
new_esEs4(Just(zzz4000), Just(zzz3000), app(ty_Ratio, dba)) → new_esEs13(zzz4000, zzz3000, dba)
new_esEs11(zzz4000, zzz3000, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_lt14(zzz400000, zzz3300000, ty_Bool) → new_lt11(zzz400000, zzz3300000)
new_lt18(zzz400000, zzz3300000, hb, hc) → new_esEs8(new_compare17(zzz400000, zzz3300000, hb, hc), LT)
new_esEs21(zzz4002, zzz3002, app(app(ty_Either, cdf), cdg)) → new_esEs7(zzz4002, zzz3002, cdf, cdg)
new_ltEs18(zzz400002, zzz3300002, app(app(app(ty_@3, ea), eb), ec)) → new_ltEs13(zzz400002, zzz3300002, ea, eb, ec)
new_lt13(zzz400001, zzz3300001, app(ty_Maybe, fb)) → new_lt15(zzz400001, zzz3300001, fb)
new_lt13(zzz400001, zzz3300001, ty_Double) → new_lt19(zzz400001, zzz3300001)
new_ltEs20(zzz400001, zzz3300001, ty_@0) → new_ltEs5(zzz400001, zzz3300001)
new_compare112(zzz400000, zzz3300000, True, ge, gf, gg) → LT
new_esEs21(zzz4002, zzz3002, ty_Char) → new_esEs17(zzz4002, zzz3002)
new_lt10(zzz400000, zzz3300000) → new_esEs8(new_compare12(zzz400000, zzz3300000), LT)
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_compare110(zzz195, zzz196, False, bef) → GT
new_ltEs20(zzz400001, zzz3300001, ty_Int) → new_ltEs12(zzz400001, zzz3300001)
new_lt14(zzz400000, zzz3300000, app(app(ty_@2, gh), ha)) → new_lt17(zzz400000, zzz3300000, gh, ha)
new_ltEs20(zzz400001, zzz3300001, app(app(app(ty_@3, hg), hh), baa)) → new_ltEs13(zzz400001, zzz3300001, hg, hh, baa)
new_esEs26(zzz400000, zzz3300000, ty_@0) → new_esEs14(zzz400000, zzz3300000)
new_esEs11(zzz4000, zzz3000, app(app(ty_Either, beh), bfa)) → new_esEs7(zzz4000, zzz3000, beh, bfa)
new_lt14(zzz400000, zzz3300000, app(ty_Maybe, gd)) → new_lt15(zzz400000, zzz3300000, gd)
new_ltEs18(zzz400002, zzz3300002, app(ty_[], dg)) → new_ltEs10(zzz400002, zzz3300002, dg)
new_esEs24(zzz4000, zzz3000, app(ty_[], cge)) → new_esEs10(zzz4000, zzz3000, cge)
new_esEs21(zzz4002, zzz3002, app(ty_Maybe, cea)) → new_esEs4(zzz4002, zzz3002, cea)
new_compare11(zzz400000, zzz3300000, ty_@0) → new_compare9(zzz400000, zzz3300000)
new_esEs20(zzz4001, zzz3001, app(app(ty_Either, ccd), cce)) → new_esEs7(zzz4001, zzz3001, ccd, cce)
new_ltEs20(zzz400001, zzz3300001, app(app(ty_Either, bad), bae)) → new_ltEs15(zzz400001, zzz3300001, bad, bae)
new_esEs23(zzz400001, zzz3300001, ty_@0) → new_esEs14(zzz400001, zzz3300001)
new_esEs11(zzz4000, zzz3000, app(app(ty_@2, bfh), bga)) → new_esEs6(zzz4000, zzz3000, bfh, bga)
new_esEs28(zzz4001, zzz3001, ty_Integer) → new_esEs9(zzz4001, zzz3001)
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs25(zzz4001, zzz3001, ty_Bool) → new_esEs12(zzz4001, zzz3001)
new_esEs21(zzz4002, zzz3002, ty_@0) → new_esEs14(zzz4002, zzz3002)
new_ltEs15(Right(zzz400000), Right(zzz3300000), bdb, app(ty_[], bdc)) → new_ltEs10(zzz400000, zzz3300000, bdc)
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(ty_Maybe, cd)) → new_ltEs8(zzz400000, zzz3300000, cd)
new_esEs19(zzz4000, zzz3000, ty_Double) → new_esEs16(zzz4000, zzz3000)
new_esEs13(:%(zzz4000, zzz4001), :%(zzz3000, zzz3001), dae) → new_asAs(new_esEs27(zzz4000, zzz3000, dae), new_esEs28(zzz4001, zzz3001, dae))
new_lt14(zzz400000, zzz3300000, ty_Float) → new_lt10(zzz400000, zzz3300000)
new_asAs(False, zzz202) → False
new_lt20(zzz400000, zzz3300000, ty_Double) → new_lt19(zzz400000, zzz3300000)
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_ltEs15(Right(zzz400000), Right(zzz3300000), bdb, ty_Ordering) → new_ltEs6(zzz400000, zzz3300000)
new_compare14(zzz400000, zzz3300000, ge, gf, gg) → new_compare25(zzz400000, zzz3300000, new_esEs5(zzz400000, zzz3300000, ge, gf, gg), ge, gf, gg)
new_esEs21(zzz4002, zzz3002, ty_Ordering) → new_esEs8(zzz4002, zzz3002)
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(app(ty_@2, da), db)) → new_ltEs4(zzz400000, zzz3300000, da, db)
new_compare11(zzz400000, zzz3300000, ty_Bool) → new_compare15(zzz400000, zzz3300000)
new_esEs22(zzz400000, zzz3300000, app(ty_[], gc)) → new_esEs10(zzz400000, zzz3300000, gc)
new_ltEs16(zzz40000, zzz330000) → new_fsEs(new_compare18(zzz40000, zzz330000))
new_lt20(zzz400000, zzz3300000, app(ty_[], baf)) → new_lt4(zzz400000, zzz3300000, baf)
new_lt19(zzz400000, zzz3300000) → new_esEs8(new_compare6(zzz400000, zzz3300000), LT)
new_esEs23(zzz400001, zzz3300001, ty_Float) → new_esEs15(zzz400001, zzz3300001)
new_ltEs18(zzz400002, zzz3300002, ty_Bool) → new_ltEs14(zzz400002, zzz3300002)
new_esEs21(zzz4002, zzz3002, ty_Integer) → new_esEs9(zzz4002, zzz3002)
new_compare11(zzz400000, zzz3300000, app(app(ty_Either, bh), ca)) → new_compare17(zzz400000, zzz3300000, bh, ca)
new_compare25(zzz400000, zzz3300000, False, ge, gf, gg) → new_compare112(zzz400000, zzz3300000, new_ltEs13(zzz400000, zzz3300000, ge, gf, gg), ge, gf, gg)
new_esEs26(zzz400000, zzz3300000, ty_Integer) → new_esEs9(zzz400000, zzz3300000)
new_esEs24(zzz4000, zzz3000, ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_esEs23(zzz400001, zzz3300001, ty_Double) → new_esEs16(zzz400001, zzz3300001)
new_ltEs6(LT, GT) → True
new_compare11(zzz400000, zzz3300000, ty_Ordering) → new_compare8(zzz400000, zzz3300000)
new_lt13(zzz400001, zzz3300001, ty_Ordering) → new_lt6(zzz400001, zzz3300001)
new_compare112(zzz400000, zzz3300000, False, ge, gf, gg) → GT
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Double) → new_esEs16(zzz4000, zzz3000)
new_esEs12(True, False) → False
new_esEs12(False, True) → False
new_ltEs15(Right(zzz400000), Right(zzz3300000), bdb, ty_Int) → new_ltEs12(zzz400000, zzz3300000)
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Bool, bgb) → new_esEs12(zzz4000, zzz3000)
new_esEs11(zzz4000, zzz3000, app(ty_Ratio, bfb)) → new_esEs13(zzz4000, zzz3000, bfb)
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(ty_Ratio, dca), bca) → new_ltEs11(zzz400000, zzz3300000, dca)
new_compare11(zzz400000, zzz3300000, ty_Float) → new_compare12(zzz400000, zzz3300000)
new_esEs11(zzz4000, zzz3000, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_ltEs18(zzz400002, zzz3300002, app(ty_Maybe, dh)) → new_ltEs8(zzz400002, zzz3300002, dh)
new_ltEs14(True, False) → False
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_ltEs8(Nothing, Nothing, ceh) → True
new_esEs22(zzz400000, zzz3300000, ty_@0) → new_esEs14(zzz400000, zzz3300000)
new_esEs25(zzz4001, zzz3001, app(app(app(ty_@3, chd), che), chf)) → new_esEs5(zzz4001, zzz3001, chd, che, chf)
new_esEs15(Float(zzz4000, zzz4001), Float(zzz3000, zzz3001)) → new_esEs18(new_sr(zzz4000, zzz3000), new_sr(zzz4001, zzz3001))
new_lt20(zzz400000, zzz3300000, ty_Char) → new_lt12(zzz400000, zzz3300000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Integer, bca) → new_ltEs16(zzz400000, zzz3300000)
new_ltEs15(Right(zzz400000), Right(zzz3300000), bdb, app(app(ty_Either, beb), bec)) → new_ltEs15(zzz400000, zzz3300000, beb, bec)
new_compare27(zzz4000, zzz33000, True, cb) → EQ
new_ltEs15(Right(zzz400000), Right(zzz3300000), bdb, ty_Bool) → new_ltEs14(zzz400000, zzz3300000)
new_compare28(zzz400000, zzz3300000, False) → new_compare113(zzz400000, zzz3300000, new_ltEs6(zzz400000, zzz3300000))
new_esEs22(zzz400000, zzz3300000, ty_Double) → new_esEs16(zzz400000, zzz3300000)
new_esEs20(zzz4001, zzz3001, ty_Char) → new_esEs17(zzz4001, zzz3001)
new_ltEs7(zzz40000, zzz330000) → new_fsEs(new_compare6(zzz40000, zzz330000))
new_ltEs15(Right(zzz400000), Right(zzz3300000), bdb, app(ty_Ratio, dcb)) → new_ltEs11(zzz400000, zzz3300000, dcb)
new_primPlusNat1(Zero, Zero) → Zero
new_ltEs6(LT, EQ) → True
new_ltEs6(GT, LT) → False
new_asAs(True, zzz202) → zzz202
new_esEs26(zzz400000, zzz3300000, app(app(app(ty_@3, bba), bbb), bbc)) → new_esEs5(zzz400000, zzz3300000, bba, bbb, bbc)
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_esEs11(zzz4000, zzz3000, ty_Char) → new_esEs17(zzz4000, zzz3000)
new_esEs11(zzz4000, zzz3000, app(ty_[], bfg)) → new_esEs10(zzz4000, zzz3000, bfg)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Integer) → new_ltEs16(zzz400000, zzz3300000)
new_compare8(zzz400000, zzz3300000) → new_compare28(zzz400000, zzz3300000, new_esEs8(zzz400000, zzz3300000))
new_ltEs15(Right(zzz400000), Right(zzz3300000), bdb, ty_Integer) → new_ltEs16(zzz400000, zzz3300000)
new_lt13(zzz400001, zzz3300001, ty_@0) → new_lt16(zzz400001, zzz3300001)
new_fsEs(zzz205) → new_not(new_esEs8(zzz205, GT))
new_ltEs20(zzz400001, zzz3300001, ty_Float) → new_ltEs9(zzz400001, zzz3300001)
new_esEs26(zzz400000, zzz3300000, app(app(ty_@2, bbd), bbe)) → new_esEs6(zzz400000, zzz3300000, bbd, bbe)
new_esEs23(zzz400001, zzz3300001, app(app(app(ty_@3, fc), fd), ff)) → new_esEs5(zzz400001, zzz3300001, fc, fd, ff)
new_lt20(zzz400000, zzz3300000, ty_Int) → new_lt9(zzz400000, zzz3300000)
new_esEs19(zzz4000, zzz3000, ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_esEs26(zzz400000, zzz3300000, ty_Double) → new_esEs16(zzz400000, zzz3300000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(app(ty_Either, bch), bda), bca) → new_ltEs15(zzz400000, zzz3300000, bch, bda)
new_ltEs15(Left(zzz400000), Right(zzz3300000), bdb, bca) → True
new_ltEs18(zzz400002, zzz3300002, app(app(ty_@2, ed), ee)) → new_ltEs4(zzz400002, zzz3300002, ed, ee)
new_ltEs20(zzz400001, zzz3300001, ty_Ordering) → new_ltEs6(zzz400001, zzz3300001)
new_lt17(zzz400000, zzz3300000, gh, ha) → new_esEs8(new_compare16(zzz400000, zzz3300000, gh, ha), LT)
new_compare5(:%(zzz400000, zzz400001), :%(zzz3300000, zzz3300001), ty_Int) → new_compare7(new_sr(zzz400000, zzz3300001), new_sr(zzz3300000, zzz400001))
new_esEs21(zzz4002, zzz3002, ty_Bool) → new_esEs12(zzz4002, zzz3002)
new_lt5(zzz400000, zzz3300000, bed) → new_esEs8(new_compare5(zzz400000, zzz3300000, bed), LT)
new_esEs25(zzz4001, zzz3001, app(app(ty_Either, cgh), cha)) → new_esEs7(zzz4001, zzz3001, cgh, cha)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCompAux0(zzz220, EQ) → zzz220
new_ltEs15(Right(zzz400000), Left(zzz3300000), bdb, bca) → False
new_compare29(zzz400000, zzz3300000, False) → new_compare111(zzz400000, zzz3300000, new_ltEs14(zzz400000, zzz3300000))
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(app(ty_@2, bcf), bcg), bca) → new_ltEs4(zzz400000, zzz3300000, bcf, bcg)
new_ltEs20(zzz400001, zzz3300001, ty_Char) → new_ltEs17(zzz400001, zzz3300001)
new_primEqInt(Neg(Zero), Pos(Zero)) → True
new_primEqInt(Pos(Zero), Neg(Zero)) → True
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Float, bca) → new_ltEs9(zzz400000, zzz3300000)
new_not(True) → False
new_esEs25(zzz4001, zzz3001, ty_Integer) → new_esEs9(zzz4001, zzz3001)

The set Q consists of the following terms:

new_esEs7(Left(x0), Left(x1), ty_Char, x2)
new_esEs19(x0, x1, app(app(ty_@2, x2), x3))
new_esEs26(x0, x1, app(ty_[], x2))
new_esEs19(x0, x1, ty_Integer)
new_esEs10(:(x0, x1), :(x2, x3), x4)
new_esEs24(x0, x1, ty_Ordering)
new_ltEs15(Left(x0), Left(x1), ty_Int, x2)
new_ltEs19(x0, x1, app(ty_Maybe, x2))
new_esEs24(x0, x1, app(ty_Maybe, x2))
new_compare26(x0, x1, False, x2, x3)
new_ltEs15(Right(x0), Right(x1), x2, ty_Bool)
new_lt14(x0, x1, ty_Double)
new_lt13(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs8(Just(x0), Just(x1), ty_Int)
new_ltEs15(Right(x0), Right(x1), x2, ty_Ordering)
new_compare([], :(x0, x1), x2)
new_esEs7(Right(x0), Right(x1), x2, ty_@0)
new_esEs11(x0, x1, app(app(ty_@2, x2), x3))
new_compare114(x0, x1, True, x2, x3)
new_esEs26(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs19(x0, x1, app(ty_Ratio, x2))
new_compare10(x0, x1, True, x2, x3)
new_lt13(x0, x1, app(app(ty_@2, x2), x3))
new_primPlusNat0(Succ(x0), x1)
new_esEs11(x0, x1, ty_@0)
new_primPlusNat0(Zero, x0)
new_pePe(True, x0)
new_ltEs20(x0, x1, app(ty_Ratio, x2))
new_esEs11(x0, x1, app(ty_[], x2))
new_ltEs19(x0, x1, ty_Int)
new_asAs(True, x0)
new_lt13(x0, x1, ty_Ordering)
new_compare24(x0, x1, True, x2, x3)
new_esEs26(x0, x1, app(ty_Ratio, x2))
new_esEs12(False, False)
new_ltEs10(x0, x1, x2)
new_ltEs8(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_ltEs8(Just(x0), Just(x1), ty_Integer)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_esEs4(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_lt11(x0, x1)
new_compare111(x0, x1, False)
new_ltEs19(x0, x1, app(app(ty_Either, x2), x3))
new_esEs20(x0, x1, ty_Bool)
new_esEs26(x0, x1, ty_Int)
new_esEs7(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_compare15(x0, x1)
new_lt14(x0, x1, ty_Ordering)
new_esEs21(x0, x1, app(ty_Ratio, x2))
new_esEs26(x0, x1, ty_Double)
new_ltEs8(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_ltEs15(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_esEs24(x0, x1, ty_@0)
new_primEqInt(Neg(Succ(x0)), Neg(Zero))
new_compare19(Char(x0), Char(x1))
new_primPlusNat1(Succ(x0), Zero)
new_compare28(x0, x1, False)
new_esEs22(x0, x1, ty_Integer)
new_esEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare6(Double(x0, x1), Double(x2, x3))
new_esEs4(Just(x0), Just(x1), ty_Bool)
new_esEs11(x0, x1, ty_Float)
new_primCompAux0(x0, LT)
new_ltEs14(True, False)
new_ltEs14(False, True)
new_esEs21(x0, x1, app(app(ty_Either, x2), x3))
new_esEs24(x0, x1, app(app(ty_@2, x2), x3))
new_esEs8(GT, GT)
new_ltEs20(x0, x1, app(ty_[], x2))
new_ltEs8(Nothing, Just(x0), x1)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs24(x0, x1, app(app(ty_Either, x2), x3))
new_esEs7(Left(x0), Left(x1), ty_Float, x2)
new_compare25(x0, x1, True, x2, x3, x4)
new_lt10(x0, x1)
new_esEs7(Right(x0), Right(x1), x2, ty_Ordering)
new_primEqInt(Pos(Succ(x0)), Neg(x1))
new_primEqInt(Neg(Succ(x0)), Pos(x1))
new_ltEs15(Right(x0), Right(x1), x2, ty_Double)
new_esEs8(LT, LT)
new_lt20(x0, x1, ty_Double)
new_esEs19(x0, x1, ty_Int)
new_ltEs7(x0, x1)
new_ltEs19(x0, x1, app(ty_Ratio, x2))
new_esEs20(x0, x1, app(ty_[], x2))
new_ltEs15(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_compare11(x0, x1, ty_@0)
new_primEqInt(Pos(Succ(x0)), Pos(Zero))
new_lt13(x0, x1, ty_Double)
new_compare27(Just(x0), Just(x1), False, x2)
new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_lt13(x0, x1, ty_@0)
new_ltEs6(EQ, EQ)
new_lt20(x0, x1, ty_Integer)
new_ltEs18(x0, x1, app(ty_[], x2))
new_compare16(x0, x1, x2, x3)
new_ltEs18(x0, x1, ty_Int)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_lt14(x0, x1, ty_Int)
new_lt8(x0, x1, x2, x3, x4)
new_esEs22(x0, x1, app(app(ty_Either, x2), x3))
new_esEs19(x0, x1, app(ty_[], x2))
new_lt15(x0, x1, x2)
new_ltEs15(Left(x0), Left(x1), ty_Float, x2)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs4(Just(x0), Just(x1), app(ty_Maybe, x2))
new_ltEs6(LT, EQ)
new_ltEs6(EQ, LT)
new_lt7(x0, x1)
new_esEs7(Left(x0), Left(x1), ty_@0, x2)
new_lt17(x0, x1, x2, x3)
new_esEs11(x0, x1, ty_Integer)
new_esEs23(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs20(x0, x1, ty_Float)
new_lt9(x0, x1)
new_primCmpNat0(Succ(x0), Zero)
new_primEqNat0(Zero, Zero)
new_ltEs15(Right(x0), Left(x1), x2, x3)
new_ltEs15(Left(x0), Right(x1), x2, x3)
new_esEs18(x0, x1)
new_esEs19(x0, x1, ty_Ordering)
new_lt20(x0, x1, ty_Ordering)
new_esEs19(x0, x1, ty_Char)
new_esEs22(x0, x1, ty_Char)
new_lt5(x0, x1, x2)
new_ltEs15(Right(x0), Right(x1), x2, ty_Char)
new_lt20(x0, x1, app(app(ty_@2, x2), x3))
new_esEs26(x0, x1, app(ty_Maybe, x2))
new_esEs22(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt20(x0, x1, ty_@0)
new_esEs23(x0, x1, ty_Char)
new_esEs11(x0, x1, app(ty_Maybe, x2))
new_esEs20(x0, x1, app(ty_Ratio, x2))
new_primMulNat0(Zero, Zero)
new_esEs7(Left(x0), Left(x1), ty_Double, x2)
new_lt19(x0, x1)
new_ltEs15(Left(x0), Left(x1), ty_Double, x2)
new_compare11(x0, x1, ty_Int)
new_esEs4(Just(x0), Just(x1), ty_Int)
new_ltEs18(x0, x1, ty_Bool)
new_compare112(x0, x1, True, x2, x3, x4)
new_primMulNat0(Zero, Succ(x0))
new_esEs21(x0, x1, app(ty_Maybe, x2))
new_ltEs18(x0, x1, app(ty_Maybe, x2))
new_lt20(x0, x1, app(ty_[], x2))
new_compare11(x0, x1, ty_Double)
new_esEs21(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs20(x0, x1, app(app(ty_Either, x2), x3))
new_esEs25(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs20(x0, x1, ty_Char)
new_esEs4(Just(x0), Just(x1), app(ty_[], x2))
new_ltEs20(x0, x1, ty_Bool)
new_esEs7(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_primEqInt(Pos(Zero), Neg(Succ(x0)))
new_primEqInt(Neg(Zero), Pos(Succ(x0)))
new_ltEs8(Just(x0), Just(x1), ty_Double)
new_esEs4(Just(x0), Just(x1), ty_Integer)
new_primCmpNat0(Succ(x0), Succ(x1))
new_ltEs15(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_esEs24(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs11(x0, x1, x2)
new_lt12(x0, x1)
new_lt14(x0, x1, ty_Char)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_compare8(x0, x1)
new_ltEs17(x0, x1)
new_esEs26(x0, x1, ty_Integer)
new_lt14(x0, x1, app(ty_Ratio, x2))
new_esEs14(@0, @0)
new_esEs5(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_compare12(Float(x0, x1), Float(x2, x3))
new_ltEs18(x0, x1, app(app(ty_Either, x2), x3))
new_esEs19(x0, x1, ty_Double)
new_ltEs15(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_esEs23(x0, x1, ty_@0)
new_compare27(Nothing, Just(x0), False, x1)
new_esEs11(x0, x1, ty_Int)
new_esEs25(x0, x1, app(app(ty_Either, x2), x3))
new_esEs7(Left(x0), Left(x1), ty_Bool, x2)
new_primPlusNat1(Succ(x0), Succ(x1))
new_ltEs6(GT, LT)
new_ltEs6(LT, GT)
new_esEs23(x0, x1, ty_Ordering)
new_ltEs19(x0, x1, ty_Integer)
new_lt13(x0, x1, app(app(ty_Either, x2), x3))
new_pePe(False, x0)
new_lt14(x0, x1, app(ty_[], x2))
new_esEs19(x0, x1, app(app(ty_Either, x2), x3))
new_esEs26(x0, x1, ty_Char)
new_lt20(x0, x1, app(app(ty_Either, x2), x3))
new_compare110(x0, x1, False, x2)
new_ltEs8(Just(x0), Just(x1), ty_@0)
new_lt14(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs27(x0, x1, ty_Integer)
new_compare29(x0, x1, True)
new_ltEs19(x0, x1, app(ty_[], x2))
new_esEs11(x0, x1, ty_Double)
new_esEs23(x0, x1, app(ty_[], x2))
new_ltEs8(Just(x0), Just(x1), app(ty_Ratio, x2))
new_ltEs18(x0, x1, ty_Char)
new_ltEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs23(x0, x1, ty_Float)
new_primMulNat0(Succ(x0), Zero)
new_primEqInt(Neg(Zero), Neg(Succ(x0)))
new_compare112(x0, x1, False, x2, x3, x4)
new_compare([], [], x0)
new_esEs22(x0, x1, app(app(ty_@2, x2), x3))
new_primPlusNat1(Zero, Zero)
new_compare27(Just(x0), Nothing, False, x1)
new_ltEs18(x0, x1, ty_Integer)
new_esEs26(x0, x1, ty_Bool)
new_esEs26(x0, x1, ty_Float)
new_esEs7(Right(x0), Right(x1), x2, ty_Char)
new_esEs16(Double(x0, x1), Double(x2, x3))
new_esEs25(x0, x1, ty_Char)
new_ltEs19(x0, x1, ty_@0)
new_esEs7(Right(x0), Right(x1), x2, ty_Float)
new_ltEs20(x0, x1, ty_Int)
new_esEs10(:(x0, x1), [], x2)
new_ltEs18(x0, x1, ty_Float)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_ltEs19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare5(:%(x0, x1), :%(x2, x3), ty_Integer)
new_esEs20(x0, x1, ty_Int)
new_esEs7(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_esEs25(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare10(x0, x1, False, x2, x3)
new_lt13(x0, x1, app(ty_Maybe, x2))
new_esEs4(Just(x0), Just(x1), ty_Ordering)
new_lt6(x0, x1)
new_lt14(x0, x1, ty_Bool)
new_esEs21(x0, x1, ty_Char)
new_esEs21(x0, x1, ty_Double)
new_ltEs9(x0, x1)
new_lt20(x0, x1, app(ty_Ratio, x2))
new_esEs25(x0, x1, ty_Float)
new_compare11(x0, x1, ty_Integer)
new_esEs21(x0, x1, ty_Bool)
new_primMulNat0(Succ(x0), Succ(x1))
new_esEs11(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt20(x0, x1, ty_Bool)
new_lt16(x0, x1)
new_ltEs15(Right(x0), Right(x1), x2, ty_@0)
new_compare18(Integer(x0), Integer(x1))
new_ltEs15(Right(x0), Right(x1), x2, ty_Integer)
new_esEs11(x0, x1, app(ty_Ratio, x2))
new_esEs7(Right(x0), Right(x1), x2, ty_Bool)
new_esEs12(True, True)
new_esEs24(x0, x1, ty_Integer)
new_esEs25(x0, x1, app(ty_[], x2))
new_ltEs15(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_ltEs15(Left(x0), Left(x1), ty_Char, x2)
new_ltEs8(Just(x0), Nothing, x1)
new_esEs4(Just(x0), Just(x1), ty_Float)
new_esEs21(x0, x1, ty_Ordering)
new_esEs24(x0, x1, ty_Double)
new_ltEs19(x0, x1, ty_Bool)
new_lt13(x0, x1, ty_Int)
new_esEs19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt14(x0, x1, ty_Integer)
new_compare(:(x0, x1), [], x2)
new_ltEs18(x0, x1, ty_@0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_lt13(x0, x1, ty_Char)
new_primEqInt(Neg(Zero), Pos(Zero))
new_primEqInt(Pos(Zero), Neg(Zero))
new_primEqNat0(Succ(x0), Succ(x1))
new_esEs24(x0, x1, ty_Char)
new_esEs7(Left(x0), Left(x1), ty_Integer, x2)
new_ltEs8(Just(x0), Just(x1), ty_Float)
new_esEs26(x0, x1, ty_Ordering)
new_compare11(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs4(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_ltEs8(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_esEs19(x0, x1, ty_Float)
new_esEs20(x0, x1, ty_@0)
new_esEs7(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_compare11(x0, x1, ty_Ordering)
new_lt20(x0, x1, ty_Float)
new_compare17(x0, x1, x2, x3)
new_esEs24(x0, x1, ty_Int)
new_lt14(x0, x1, app(app(ty_@2, x2), x3))
new_primEqInt(Neg(Zero), Neg(Zero))
new_esEs26(x0, x1, app(app(ty_Either, x2), x3))
new_asAs(False, x0)
new_esEs4(Just(x0), Just(x1), ty_Double)
new_ltEs15(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_compare14(x0, x1, x2, x3, x4)
new_compare113(x0, x1, True)
new_esEs7(Left(x0), Left(x1), ty_Ordering, x2)
new_lt13(x0, x1, ty_Float)
new_ltEs15(Left(x0), Left(x1), ty_Integer, x2)
new_primCmpNat0(Zero, Succ(x0))
new_esEs7(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_lt4(x0, x1, x2)
new_esEs20(x0, x1, app(ty_Maybe, x2))
new_esEs11(x0, x1, ty_Bool)
new_esEs7(Right(x0), Left(x1), x2, x3)
new_esEs7(Left(x0), Right(x1), x2, x3)
new_esEs22(x0, x1, ty_Double)
new_ltEs15(Right(x0), Right(x1), x2, app(ty_[], x3))
new_esEs25(x0, x1, ty_Bool)
new_compare25(x0, x1, False, x2, x3, x4)
new_ltEs15(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_primCompAux1(x0, x1, x2, x3)
new_esEs28(x0, x1, ty_Int)
new_esEs15(Float(x0, x1), Float(x2, x3))
new_primMulInt(Neg(x0), Neg(x1))
new_compare5(:%(x0, x1), :%(x2, x3), ty_Int)
new_compare13(x0, x1, x2)
new_esEs20(x0, x1, ty_Char)
new_esEs21(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs19(x0, x1, ty_Char)
new_esEs7(Left(x0), Left(x1), ty_Int, x2)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_compare29(x0, x1, False)
new_esEs20(x0, x1, ty_Double)
new_ltEs6(GT, GT)
new_lt13(x0, x1, ty_Bool)
new_esEs23(x0, x1, ty_Integer)
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_compare27(Nothing, Nothing, False, x0)
new_esEs25(x0, x1, app(ty_Ratio, x2))
new_esEs7(Right(x0), Right(x1), x2, ty_Int)
new_esEs23(x0, x1, app(app(ty_@2, x2), x3))
new_esEs7(Left(x0), Left(x1), app(ty_[], x2), x3)
new_ltEs15(Left(x0), Left(x1), ty_Bool, x2)
new_esEs7(Right(x0), Right(x1), x2, ty_Integer)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primEqInt(Pos(Zero), Pos(Succ(x0)))
new_primCmpNat0(Zero, Zero)
new_ltEs8(Just(x0), Just(x1), ty_Char)
new_ltEs13(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_esEs27(x0, x1, ty_Int)
new_ltEs6(LT, LT)
new_lt20(x0, x1, app(ty_Maybe, x2))
new_ltEs15(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_esEs22(x0, x1, ty_Bool)
new_compare110(x0, x1, True, x2)
new_primPlusNat1(Zero, Succ(x0))
new_ltEs18(x0, x1, ty_Double)
new_esEs22(x0, x1, ty_Int)
new_lt13(x0, x1, ty_Integer)
new_compare11(x0, x1, app(ty_Ratio, x2))
new_esEs20(x0, x1, app(app(ty_@2, x2), x3))
new_compare11(x0, x1, app(app(ty_@2, x2), x3))
new_lt14(x0, x1, app(ty_Maybe, x2))
new_ltEs18(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs28(x0, x1, ty_Integer)
new_esEs17(Char(x0), Char(x1))
new_esEs23(x0, x1, app(app(ty_Either, x2), x3))
new_esEs7(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_lt13(x0, x1, app(ty_Ratio, x2))
new_lt20(x0, x1, ty_Char)
new_esEs25(x0, x1, ty_Integer)
new_ltEs15(Right(x0), Right(x1), x2, ty_Float)
new_esEs7(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_ltEs15(Left(x0), Left(x1), app(ty_[], x2), x3)
new_esEs7(Right(x0), Right(x1), x2, app(ty_[], x3))
new_esEs4(Just(x0), Nothing, x1)
new_esEs23(x0, x1, ty_Double)
new_esEs4(Just(x0), Just(x1), ty_Char)
new_ltEs20(x0, x1, ty_Ordering)
new_ltEs20(x0, x1, app(ty_Maybe, x2))
new_esEs12(True, False)
new_esEs12(False, True)
new_esEs21(x0, x1, app(ty_[], x2))
new_compare28(x0, x1, True)
new_lt18(x0, x1, x2, x3)
new_sr(x0, x1)
new_compare26(x0, x1, True, x2, x3)
new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_compare9(@0, @0)
new_esEs11(x0, x1, ty_Char)
new_ltEs19(x0, x1, ty_Double)
new_fsEs(x0)
new_ltEs14(True, True)
new_esEs7(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_compare11(x0, x1, app(ty_[], x2))
new_esEs24(x0, x1, app(ty_[], x2))
new_ltEs15(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_esEs21(x0, x1, ty_Integer)
new_compare27(x0, x1, True, x2)
new_ltEs14(False, False)
new_esEs4(Just(x0), Just(x1), app(ty_Ratio, x2))
new_esEs20(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs19(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs5(x0, x1)
new_esEs25(x0, x1, ty_Int)
new_esEs11(x0, x1, ty_Ordering)
new_ltEs18(x0, x1, app(ty_Ratio, x2))
new_esEs23(x0, x1, ty_Bool)
new_ltEs20(x0, x1, ty_Float)
new_primEqNat0(Zero, Succ(x0))
new_not(True)
new_primCompAux0(x0, EQ)
new_esEs4(Nothing, Nothing, x0)
new_esEs25(x0, x1, ty_Ordering)
new_ltEs20(x0, x1, ty_Integer)
new_esEs20(x0, x1, ty_Integer)
new_esEs26(x0, x1, ty_@0)
new_lt14(x0, x1, app(app(ty_Either, x2), x3))
new_esEs10([], :(x0, x1), x2)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_compare111(x0, x1, True)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_not(False)
new_esEs21(x0, x1, ty_@0)
new_ltEs8(Just(x0), Just(x1), app(ty_Maybe, x2))
new_compare24(x0, x1, False, x2, x3)
new_ltEs6(EQ, GT)
new_ltEs6(GT, EQ)
new_lt14(x0, x1, ty_Float)
new_esEs23(x0, x1, app(ty_Ratio, x2))
new_esEs25(x0, x1, app(ty_Maybe, x2))
new_esEs6(@2(x0, x1), @2(x2, x3), x4, x5)
new_esEs11(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs20(x0, x1, ty_@0)
new_esEs23(x0, x1, ty_Int)
new_lt13(x0, x1, app(ty_[], x2))
new_ltEs18(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs19(x0, x1, ty_Ordering)
new_esEs24(x0, x1, ty_Bool)
new_esEs23(x0, x1, app(ty_Maybe, x2))
new_lt20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_compare114(x0, x1, False, x2, x3)
new_lt14(x0, x1, ty_@0)
new_esEs10([], [], x0)
new_ltEs4(@2(x0, x1), @2(x2, x3), x4, x5)
new_esEs22(x0, x1, app(ty_[], x2))
new_ltEs8(Just(x0), Just(x1), ty_Ordering)
new_esEs4(Just(x0), Just(x1), ty_@0)
new_esEs25(x0, x1, ty_Double)
new_esEs7(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_esEs4(Nothing, Just(x0), x1)
new_compare7(x0, x1)
new_esEs24(x0, x1, ty_Float)
new_ltEs15(Left(x0), Left(x1), ty_Ordering, x2)
new_esEs19(x0, x1, app(ty_Maybe, x2))
new_esEs19(x0, x1, ty_Bool)
new_esEs25(x0, x1, ty_@0)
new_compare11(x0, x1, app(app(ty_Either, x2), x3))
new_esEs26(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs8(Just(x0), Just(x1), app(ty_[], x2))
new_ltEs15(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_esEs4(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_esEs22(x0, x1, app(ty_Ratio, x2))
new_lt20(x0, x1, ty_Int)
new_sr0(Integer(x0), Integer(x1))
new_esEs20(x0, x1, ty_Ordering)
new_compare11(x0, x1, ty_Char)
new_primEqInt(Pos(Zero), Pos(Zero))
new_ltEs15(Right(x0), Right(x1), x2, ty_Int)
new_ltEs20(x0, x1, app(app(ty_@2, x2), x3))
new_esEs22(x0, x1, ty_Ordering)
new_esEs21(x0, x1, ty_Int)
new_esEs22(x0, x1, app(ty_Maybe, x2))
new_esEs7(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_primCompAux0(x0, GT)
new_ltEs18(x0, x1, ty_Ordering)
new_esEs9(Integer(x0), Integer(x1))
new_compare(:(x0, x1), :(x2, x3), x4)
new_esEs19(x0, x1, ty_@0)
new_esEs22(x0, x1, ty_Float)
new_compare11(x0, x1, app(ty_Maybe, x2))
new_esEs21(x0, x1, ty_Float)
new_ltEs20(x0, x1, ty_Double)
new_primEqNat0(Succ(x0), Zero)
new_esEs22(x0, x1, ty_@0)
new_compare11(x0, x1, ty_Float)
new_ltEs8(Just(x0), Just(x1), ty_Bool)
new_esEs24(x0, x1, app(ty_Ratio, x2))
new_compare113(x0, x1, False)
new_esEs13(:%(x0, x1), :%(x2, x3), x4)
new_ltEs12(x0, x1)
new_ltEs15(Left(x0), Left(x1), ty_@0, x2)
new_ltEs19(x0, x1, ty_Float)
new_ltEs16(x0, x1)
new_compare11(x0, x1, ty_Bool)
new_esEs7(Right(x0), Right(x1), x2, ty_Double)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_ltEs8(Nothing, Nothing, x0)

We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_deleteMin(zzz770, zzz771, zzz772, Branch(zzz7730, zzz7731, zzz7732, zzz7733, zzz7734), zzz774, h, ba) → new_deleteMin(zzz7730, zzz7731, zzz7732, zzz7733, zzz7734, h, ba)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_deleteMax(zzz780, zzz781, zzz782, zzz783, Branch(zzz7840, zzz7841, zzz7842, zzz7843, zzz7844), h, ba) → new_deleteMax(zzz7840, zzz7841, zzz7842, zzz7843, zzz7844, h, ba)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_lt9(new_sr(new_sIZE_RATIO, new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), h, ba)
new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_lt9(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)

The TRS R consists of the following rules:

new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_esEs8(EQ, EQ) → True
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primPlusNat1(Zero, Zero) → Zero
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_sr(zzz4001, zzz3001) → new_primMulInt(zzz4001, zzz3001)
new_lt9(zzz4000, zzz33000) → new_esEs8(new_compare7(zzz4000, zzz33000), LT)
new_compare7(zzz400, zzz3300) → new_primCmpInt(zzz400, zzz3300)
new_esEs8(GT, EQ) → False
new_esEs8(EQ, GT) → False
new_primMulNat0(Zero, Zero) → Zero
new_esEs8(GT, GT) → True
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_esEs8(GT, LT) → False
new_esEs8(LT, GT) → False
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_esEs8(LT, EQ) → False
new_esEs8(EQ, LT) → False
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_esEs8(LT, LT) → True
new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)
new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT

The set Q consists of the following terms:

new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_sr(x0, x1)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_compare7(x0, x1)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_lt9(x0, x1)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
QDP
                                        ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_lt9(new_sr(new_sIZE_RATIO, new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), h, ba)
new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_lt9(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)
new_sr(zzz4001, zzz3001) → new_primMulInt(zzz4001, zzz3001)
new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)
new_lt9(zzz4000, zzz33000) → new_esEs8(new_compare7(zzz4000, zzz33000), LT)
new_compare7(zzz400, zzz3300) → new_primCmpInt(zzz400, zzz3300)
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_sr(x0, x1)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_compare7(x0, x1)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_lt9(x0, x1)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_lt9(new_sr(new_sIZE_RATIO, new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), h, ba) at position [10] we obtained the following new rules:

new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_compare7(new_sr(new_sIZE_RATIO, new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
QDP
                                            ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_lt9(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), h, ba)
new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_compare7(new_sr(new_sIZE_RATIO, new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)
new_sr(zzz4001, zzz3001) → new_primMulInt(zzz4001, zzz3001)
new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)
new_lt9(zzz4000, zzz33000) → new_esEs8(new_compare7(zzz4000, zzz33000), LT)
new_compare7(zzz400, zzz3300) → new_primCmpInt(zzz400, zzz3300)
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_sr(x0, x1)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_compare7(x0, x1)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_lt9(x0, x1)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_lt9(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), h, ba) at position [10] we obtained the following new rules:

new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_compare7(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
QDP
                                                ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_compare7(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)
new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_compare7(new_sr(new_sIZE_RATIO, new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)
new_sr(zzz4001, zzz3001) → new_primMulInt(zzz4001, zzz3001)
new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)
new_lt9(zzz4000, zzz33000) → new_esEs8(new_compare7(zzz4000, zzz33000), LT)
new_compare7(zzz400, zzz3300) → new_primCmpInt(zzz400, zzz3300)
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_sr(x0, x1)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_compare7(x0, x1)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_lt9(x0, x1)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
QDP
                                                    ↳ QReductionProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_compare7(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_compare7(new_sr(new_sIZE_RATIO, new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)
new_sr(zzz4001, zzz3001) → new_primMulInt(zzz4001, zzz3001)
new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)
new_compare7(zzz400, zzz3300) → new_primCmpInt(zzz400, zzz3300)
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_sr(x0, x1)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_compare7(x0, x1)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_lt9(x0, x1)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

new_lt9(x0, x1)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
QDP
                                                        ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_compare7(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)
new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_compare7(new_sr(new_sIZE_RATIO, new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)
new_sr(zzz4001, zzz3001) → new_primMulInt(zzz4001, zzz3001)
new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)
new_compare7(zzz400, zzz3300) → new_primCmpInt(zzz400, zzz3300)
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_sr(x0, x1)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_compare7(x0, x1)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_compare7(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba) at position [10,0] we obtained the following new rules:

new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
QDP
                                                            ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_compare7(new_sr(new_sIZE_RATIO, new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)
new_sr(zzz4001, zzz3001) → new_primMulInt(zzz4001, zzz3001)
new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)
new_compare7(zzz400, zzz3300) → new_primCmpInt(zzz400, zzz3300)
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_sr(x0, x1)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_compare7(x0, x1)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_compare7(new_sr(new_sIZE_RATIO, new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba) at position [10,0] we obtained the following new rules:

new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
QDP
                                                                ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)
new_sr(zzz4001, zzz3001) → new_primMulInt(zzz4001, zzz3001)
new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)
new_compare7(zzz400, zzz3300) → new_primCmpInt(zzz400, zzz3300)
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_sr(x0, x1)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_compare7(x0, x1)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
QDP
                                                                    ↳ QReductionProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)
new_sr(zzz4001, zzz3001) → new_primMulInt(zzz4001, zzz3001)
new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_sr(x0, x1)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_compare7(x0, x1)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

new_compare7(x0, x1)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
QDP
                                                                        ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)
new_sr(zzz4001, zzz3001) → new_primMulInt(zzz4001, zzz3001)
new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_sr(x0, x1)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba) at position [10,0,0] we obtained the following new rules:

new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
QDP
                                                                            ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)
new_sr(zzz4001, zzz3001) → new_primMulInt(zzz4001, zzz3001)
new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_sr(x0, x1)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba) at position [10,0,0] we obtained the following new rules:

new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
QDP
                                                                                ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)
new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)
new_sr(zzz4001, zzz3001) → new_primMulInt(zzz4001, zzz3001)
new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_sr(x0, x1)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
QDP
                                                                                    ↳ QReductionProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_sr(x0, x1)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

new_sr(x0, x1)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
QDP
                                                                                        ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)
new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba) at position [10,0,0,0] we obtained the following new rules:

new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
QDP
                                                                                            ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba) at position [10,0,0,0] we obtained the following new rules:

new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
QDP
                                                                                                ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
QDP
                                                                                                    ↳ QReductionProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)

The TRS R consists of the following rules:

new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

new_sIZE_RATIO



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
QDP
                                                                                                        ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)

The TRS R consists of the following rules:

new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba) at position [10,0,0,1] we obtained the following new rules:

new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
QDP
                                                                                                            ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)

The TRS R consists of the following rules:

new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba) at position [10,0,0,1] we obtained the following new rules:

new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
QDP
                                                                                                                ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)

The TRS R consists of the following rules:

new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba) at position [10,0,0,1] we obtained the following new rules:

new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz782), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
QDP
                                                                                                                    ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz782), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)

The TRS R consists of the following rules:

new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba) at position [10,0,0,1] we obtained the following new rules:

new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz772), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
QDP
                                                                                                                        ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz772), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz782), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)

The TRS R consists of the following rules:

new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz782), new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba) at position [10,0,1] we obtained the following new rules:

new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz782), new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)), LT), h, ba)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
QDP
                                                                                                                            ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz772), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz782), new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)

The TRS R consists of the following rules:

new_glueVBal3Size_r(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ UsableRulesProof
QDP
                                                                                                                                ↳ QReductionProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz772), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz782), new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

new_glueVBal3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ UsableRulesProof
                                                                                                                              ↳ QDP
                                                                                                                                ↳ QReductionProof
QDP
                                                                                                                                    ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz772), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz782), new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz772), new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba) at position [10,0,1] we obtained the following new rules:

new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz772), new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ UsableRulesProof
                                                                                                                              ↳ QDP
                                                                                                                                ↳ QReductionProof
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ Rewriting
QDP
                                                                                                                                        ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz772), new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz782), new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_glueVBal3Size_l(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, h, ba) → new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ UsableRulesProof
                                                                                                                              ↳ QDP
                                                                                                                                ↳ QReductionProof
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ Rewriting
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ UsableRulesProof
QDP
                                                                                                                                            ↳ QReductionProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz772), new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz782), new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

new_glueVBal3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ UsableRulesProof
                                                                                                                              ↳ QDP
                                                                                                                                ↳ QReductionProof
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ Rewriting
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ UsableRulesProof
                                                                                                                                          ↳ QDP
                                                                                                                                            ↳ QReductionProof
QDP
                                                                                                                                                ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz772), new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz782), new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz772), new_sizeFM(zzz780, zzz781, zzz782, zzz783, zzz784, h, ba)), LT), h, ba) at position [10,0,1] we obtained the following new rules:

new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz772), zzz782), LT), h, ba)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ UsableRulesProof
                                                                                                                              ↳ QDP
                                                                                                                                ↳ QReductionProof
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ Rewriting
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ UsableRulesProof
                                                                                                                                          ↳ QDP
                                                                                                                                            ↳ QReductionProof
                                                                                                                                              ↳ QDP
                                                                                                                                                ↳ Rewriting
QDP
                                                                                                                                                    ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz782), new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)), LT), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz772), zzz782), LT), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz782), new_sizeFM(zzz770, zzz771, zzz772, zzz773, zzz774, h, ba)), LT), h, ba) at position [10,0,1] we obtained the following new rules:

new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz782), zzz772), LT), h, ba)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ UsableRulesProof
                                                                                                                              ↳ QDP
                                                                                                                                ↳ QReductionProof
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ Rewriting
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ UsableRulesProof
                                                                                                                                          ↳ QDP
                                                                                                                                            ↳ QReductionProof
                                                                                                                                              ↳ QDP
                                                                                                                                                ↳ Rewriting
                                                                                                                                                  ↳ QDP
                                                                                                                                                    ↳ Rewriting
QDP
                                                                                                                                                        ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz782), zzz772), LT), h, ba)
new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz772), zzz782), LT), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ UsableRulesProof
                                                                                                                              ↳ QDP
                                                                                                                                ↳ QReductionProof
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ Rewriting
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ UsableRulesProof
                                                                                                                                          ↳ QDP
                                                                                                                                            ↳ QReductionProof
                                                                                                                                              ↳ QDP
                                                                                                                                                ↳ Rewriting
                                                                                                                                                  ↳ QDP
                                                                                                                                                    ↳ Rewriting
                                                                                                                                                      ↳ QDP
                                                                                                                                                        ↳ UsableRulesProof
QDP
                                                                                                                                                            ↳ QReductionProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz782), zzz772), LT), h, ba)
new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz772), zzz782), LT), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

new_sizeFM(x0, x1, x2, x3, x4, x5, x6)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ UsableRulesProof
                                                                                                                              ↳ QDP
                                                                                                                                ↳ QReductionProof
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ Rewriting
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ UsableRulesProof
                                                                                                                                          ↳ QDP
                                                                                                                                            ↳ QReductionProof
                                                                                                                                              ↳ QDP
                                                                                                                                                ↳ Rewriting
                                                                                                                                                  ↳ QDP
                                                                                                                                                    ↳ Rewriting
                                                                                                                                                      ↳ QDP
                                                                                                                                                        ↳ UsableRulesProof
                                                                                                                                                          ↳ QDP
                                                                                                                                                            ↳ QReductionProof
QDP
                                                                                                                                                                ↳ QDPOrderProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz782), zzz772), LT), h, ba)
new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz772), zzz782), LT), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].


The following pairs can be oriented strictly and are deleted.


new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, False, h, ba) → new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz772), zzz782), LT), h, ba)
new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), zzz773, h, ba)
The remaining pairs can at least be oriented weakly.

new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz782), zzz772), LT), h, ba)
new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)
Used ordering: Polynomial interpretation [25]:

POL(Branch(x1, x2, x3, x4, x5)) = 1 + x2 + x3 + x4 + x5   
POL(EQ) = 0   
POL(False) = 1   
POL(GT) = 0   
POL(LT) = 0   
POL(Neg(x1)) = 1 + x1   
POL(Pos(x1)) = 1 + x1   
POL(Succ(x1)) = 1   
POL(True) = 1   
POL(Zero) = 1   
POL(new_esEs8(x1, x2)) = 1   
POL(new_glueVBal(x1, x2, x3, x4)) = x1 + x2   
POL(new_glueVBal3GlueVBal1(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13)) = x10 + x11 + x2 + x3 + x4 + x5   
POL(new_glueVBal3GlueVBal2(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13)) = 1 + x10 + x11 + x2 + x3 + x4 + x5 + x7 + x8 + x9   
POL(new_primCmpInt(x1, x2)) = 0   
POL(new_primCmpNat0(x1, x2)) = 0   
POL(new_primMulInt(x1, x2)) = x1 + x2   
POL(new_primMulNat0(x1, x2)) = 0   
POL(new_primPlusNat0(x1, x2)) = 0   
POL(new_primPlusNat1(x1, x2)) = x1 + x2   

The following usable rules [17] were oriented:

new_esEs8(GT, LT) → False
new_esEs8(LT, LT) → True
new_esEs8(EQ, LT) → False



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ UsableRulesProof
                                                                                                                              ↳ QDP
                                                                                                                                ↳ QReductionProof
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ Rewriting
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ UsableRulesProof
                                                                                                                                          ↳ QDP
                                                                                                                                            ↳ QReductionProof
                                                                                                                                              ↳ QDP
                                                                                                                                                ↳ Rewriting
                                                                                                                                                  ↳ QDP
                                                                                                                                                    ↳ Rewriting
                                                                                                                                                      ↳ QDP
                                                                                                                                                        ↳ UsableRulesProof
                                                                                                                                                          ↳ QDP
                                                                                                                                                            ↳ QReductionProof
                                                                                                                                                              ↳ QDP
                                                                                                                                                                ↳ QDPOrderProof
QDP
                                                                                                                                                                    ↳ DependencyGraphProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_glueVBal(Branch(zzz780, zzz781, zzz782, zzz783, zzz784), Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba) → new_glueVBal3GlueVBal2(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz782), zzz772), LT), h, ba)
new_glueVBal3GlueVBal1(zzz770, zzz771, zzz772, zzz773, zzz774, zzz780, zzz781, zzz782, zzz783, zzz784, True, h, ba) → new_glueVBal(zzz784, Branch(zzz770, zzz771, zzz772, zzz773, zzz774), h, ba)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 0 SCCs with 2 less nodes.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_addToFM_C2(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_addToFM_C1(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_gt(zzz330, zzz3440, h), h, ba)
new_addToFM_C(Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), zzz330, zzz331, h, ba) → new_addToFM_C2(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_lt15(zzz330, zzz3440, h), h, ba)
new_addToFM_C1(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_addToFM_C(zzz3444, zzz330, zzz331, h, ba)
new_addToFM_C2(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_addToFM_C(zzz3443, zzz330, zzz331, h, ba)

The TRS R consists of the following rules:

new_esEs4(Just(zzz4000), Just(zzz3000), app(ty_Maybe, dbf)) → new_esEs4(zzz4000, zzz3000, dbf)
new_esEs23(zzz400001, zzz3300001, app(app(ty_Either, bfg), bfh)) → new_esEs7(zzz400001, zzz3300001, bfg, bfh)
new_ltEs19(zzz40000, zzz330000, ty_Integer) → new_ltEs16(zzz40000, zzz330000)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_esEs7(Left(zzz4000), Left(zzz3000), app(app(ty_Either, fb), fc), fa) → new_esEs7(zzz4000, zzz3000, fb, fc)
new_ltEs19(zzz40000, zzz330000, app(ty_Ratio, cdd)) → new_ltEs11(zzz40000, zzz330000, cdd)
new_esEs21(zzz4002, zzz3002, app(app(ty_@2, bea), beb)) → new_esEs6(zzz4002, zzz3002, bea, beb)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, app(ty_Maybe, dab)) → new_ltEs8(zzz400000, zzz3300000, dab)
new_lt14(zzz400000, zzz3300000, ty_Integer) → new_lt7(zzz400000, zzz3300000)
new_ltEs18(zzz400002, zzz3300002, ty_Int) → new_ltEs12(zzz400002, zzz3300002)
new_esEs24(zzz4000, zzz3000, app(app(app(ty_@3, cbd), cbe), cbf)) → new_esEs5(zzz4000, zzz3000, cbd, cbe, cbf)
new_esEs17(Char(zzz4000), Char(zzz3000)) → new_primEqNat0(zzz4000, zzz3000)
new_esEs20(zzz4001, zzz3001, ty_Bool) → new_esEs12(zzz4001, zzz3001)
new_esEs7(Left(zzz4000), Left(zzz3000), app(ty_Maybe, ff), fa) → new_esEs4(zzz4000, zzz3000, ff)
new_esEs24(zzz4000, zzz3000, ty_Char) → new_esEs17(zzz4000, zzz3000)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, ty_Float) → new_ltEs9(zzz400000, zzz3300000)
new_ltEs20(zzz400001, zzz3300001, app(ty_[], cfc)) → new_ltEs10(zzz400001, zzz3300001, cfc)
new_compare([], :(zzz3300000, zzz3300001), bf) → LT
new_compare10(zzz400000, zzz3300000, True, bd, be) → LT
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(app(app(ty_@3, bhg), bhh), caa)) → new_ltEs13(zzz400000, zzz3300000, bhg, bhh, caa)
new_lt13(zzz400001, zzz3300001, app(app(app(ty_@3, bfb), bfc), bfd)) → new_lt8(zzz400001, zzz3300001, bfb, bfc, bfd)
new_esEs24(zzz4000, zzz3000, app(ty_Maybe, cbc)) → new_esEs4(zzz4000, zzz3000, cbc)
new_esEs19(zzz4000, zzz3000, ty_Float) → new_esEs15(zzz4000, zzz3000)
new_esEs4(Nothing, Just(zzz3000), dbb) → False
new_esEs4(Just(zzz4000), Nothing, dbb) → False
new_lt20(zzz400000, zzz3300000, app(app(app(ty_@3, ced), cee), cef)) → new_lt8(zzz400000, zzz3300000, ced, cee, cef)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Char) → new_esEs17(zzz4000, zzz3000)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_@0) → new_esEs14(zzz4000, zzz3000)
new_esEs25(zzz4001, zzz3001, ty_Char) → new_esEs17(zzz4001, zzz3001)
new_ltEs20(zzz400001, zzz3300001, ty_Double) → new_ltEs7(zzz400001, zzz3300001)
new_primMulNat0(Zero, Zero) → Zero
new_esEs7(Left(zzz4000), Left(zzz3000), app(app(app(ty_@3, fg), fh), ga), fa) → new_esEs5(zzz4000, zzz3000, fg, fh, ga)
new_esEs26(zzz400000, zzz3300000, ty_Float) → new_esEs15(zzz400000, zzz3300000)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, ty_Double) → new_esEs16(zzz4000, zzz3000)
new_compare(:(zzz400000, zzz400001), [], bf) → GT
new_compare11(zzz400000, zzz3300000, ty_Int) → new_compare7(zzz400000, zzz3300000)
new_lt14(zzz400000, zzz3300000, ty_Ordering) → new_lt6(zzz400000, zzz3300000)
new_compare29(zzz400000, zzz3300000, True) → EQ
new_esEs23(zzz400001, zzz3300001, app(ty_Ratio, beh)) → new_esEs13(zzz400001, zzz3300001, beh)
new_esEs12(True, True) → True
new_ltEs18(zzz400002, zzz3300002, ty_Integer) → new_ltEs16(zzz400002, zzz3300002)
new_ltEs18(zzz400002, zzz3300002, ty_@0) → new_ltEs5(zzz400002, zzz3300002)
new_esEs20(zzz4001, zzz3001, app(ty_Maybe, bcb)) → new_esEs4(zzz4001, zzz3001, bcb)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Double, cdh) → new_ltEs7(zzz400000, zzz3300000)
new_esEs21(zzz4002, zzz3002, app(ty_[], bdh)) → new_esEs10(zzz4002, zzz3002, bdh)
new_esEs22(zzz400000, zzz3300000, ty_Char) → new_esEs17(zzz400000, zzz3300000)
new_ltEs20(zzz400001, zzz3300001, app(ty_Maybe, cfe)) → new_ltEs8(zzz400001, zzz3300001, cfe)
new_esEs23(zzz400001, zzz3300001, ty_Bool) → new_esEs12(zzz400001, zzz3300001)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_ltEs18(zzz400002, zzz3300002, ty_Char) → new_ltEs17(zzz400002, zzz3300002)
new_compare11(zzz400000, zzz3300000, app(ty_Maybe, ca)) → new_compare13(zzz400000, zzz3300000, ca)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, ty_@0) → new_ltEs5(zzz400000, zzz3300000)
new_ltEs14(False, True) → True
new_esEs24(zzz4000, zzz3000, ty_@0) → new_esEs14(zzz4000, zzz3000)
new_esEs25(zzz4001, zzz3001, ty_Double) → new_esEs16(zzz4001, zzz3001)
new_lt14(zzz400000, zzz3300000, app(app(ty_Either, hh), baa)) → new_lt18(zzz400000, zzz3300000, hh, baa)
new_esEs23(zzz400001, zzz3300001, app(ty_Maybe, bfa)) → new_esEs4(zzz400001, zzz3300001, bfa)
new_compare26(zzz400000, zzz3300000, False, hh, baa) → new_compare114(zzz400000, zzz3300000, new_ltEs15(zzz400000, zzz3300000, hh, baa), hh, baa)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, app(ty_[], he)) → new_esEs10(zzz4000, zzz3000, he)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Char, cdh) → new_ltEs17(zzz400000, zzz3300000)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, app(app(app(ty_@3, hb), hc), hd)) → new_esEs5(zzz4000, zzz3000, hb, hc, hd)
new_esEs26(zzz400000, zzz3300000, app(ty_[], cea)) → new_esEs10(zzz400000, zzz3300000, cea)
new_esEs20(zzz4001, zzz3001, app(ty_Ratio, bca)) → new_esEs13(zzz4001, zzz3001, bca)
new_compare11(zzz400000, zzz3300000, ty_Integer) → new_compare18(zzz400000, zzz3300000)
new_esEs22(zzz400000, zzz3300000, ty_Integer) → new_esEs9(zzz400000, zzz3300000)
new_compare15(zzz400000, zzz3300000) → new_compare29(zzz400000, zzz3300000, new_esEs12(zzz400000, zzz3300000))
new_lt13(zzz400001, zzz3300001, app(app(ty_Either, bfg), bfh)) → new_lt18(zzz400001, zzz3300001, bfg, bfh)
new_ltEs9(zzz40000, zzz330000) → new_fsEs(new_compare12(zzz40000, zzz330000))
new_ltEs20(zzz400001, zzz3300001, ty_Integer) → new_ltEs16(zzz400001, zzz3300001)
new_lt20(zzz400000, zzz3300000, app(ty_Maybe, cec)) → new_lt15(zzz400000, zzz3300000, cec)
new_lt14(zzz400000, zzz3300000, ty_Char) → new_lt12(zzz400000, zzz3300000)
new_esEs19(zzz4000, zzz3000, app(app(app(ty_@3, bba), bbb), bbc)) → new_esEs5(zzz4000, zzz3000, bba, bbb, bbc)
new_esEs19(zzz4000, zzz3000, ty_@0) → new_esEs14(zzz4000, zzz3000)
new_esEs26(zzz400000, zzz3300000, app(ty_Maybe, cec)) → new_esEs4(zzz400000, zzz3300000, cec)
new_esEs20(zzz4001, zzz3001, app(app(ty_@2, bcg), bch)) → new_esEs6(zzz4001, zzz3001, bcg, bch)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, app(app(ty_@2, daf), dag)) → new_ltEs4(zzz400000, zzz3300000, daf, dag)
new_lt13(zzz400001, zzz3300001, ty_Char) → new_lt12(zzz400001, zzz3300001)
new_esEs20(zzz4001, zzz3001, ty_@0) → new_esEs14(zzz4001, zzz3001)
new_esEs22(zzz400000, zzz3300000, app(app(ty_Either, hh), baa)) → new_esEs7(zzz400000, zzz3300000, hh, baa)
new_lt13(zzz400001, zzz3300001, app(ty_[], beg)) → new_lt4(zzz400001, zzz3300001, beg)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Ordering, cdh) → new_ltEs6(zzz400000, zzz3300000)
new_lt7(zzz400000, zzz3300000) → new_esEs8(new_compare18(zzz400000, zzz3300000), LT)
new_esEs25(zzz4001, zzz3001, app(ty_[], cda)) → new_esEs10(zzz4001, zzz3001, cda)
new_esEs28(zzz4001, zzz3001, ty_Int) → new_esEs18(zzz4001, zzz3001)
new_pePe(False, zzz214) → zzz214
new_esEs19(zzz4000, zzz3000, app(ty_[], bbd)) → new_esEs10(zzz4000, zzz3000, bbd)
new_compare27(Just(zzz40000), Just(zzz330000), False, bah) → new_compare110(zzz40000, zzz330000, new_ltEs19(zzz40000, zzz330000, bah), bah)
new_esEs7(Left(zzz4000), Left(zzz3000), app(ty_[], gb), fa) → new_esEs10(zzz4000, zzz3000, gb)
new_esEs7(Left(zzz4000), Right(zzz3000), ge, fa) → False
new_esEs7(Right(zzz4000), Left(zzz3000), ge, fa) → False
new_esEs27(zzz4000, zzz3000, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_compare11(zzz400000, zzz3300000, app(ty_[], bg)) → new_compare(zzz400000, zzz3300000, bg)
new_lt20(zzz400000, zzz3300000, ty_Bool) → new_lt11(zzz400000, zzz3300000)
new_lt15(zzz4000, zzz33000, bah) → new_esEs8(new_compare13(zzz4000, zzz33000, bah), LT)
new_lt9(zzz4000, zzz33000) → new_esEs8(new_compare7(zzz4000, zzz33000), LT)
new_esEs20(zzz4001, zzz3001, ty_Double) → new_esEs16(zzz4001, zzz3001)
new_ltEs19(zzz40000, zzz330000, app(app(ty_@2, cde), cdf)) → new_ltEs4(zzz40000, zzz330000, cde, cdf)
new_lt4(zzz400000, zzz3300000, bb) → new_esEs8(new_compare(zzz400000, zzz3300000, bb), LT)
new_esEs11(zzz4000, zzz3000, ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_lt20(zzz400000, zzz3300000, ty_Float) → new_lt10(zzz400000, zzz3300000)
new_lt6(zzz400000, zzz3300000) → new_esEs8(new_compare8(zzz400000, zzz3300000), LT)
new_ltEs10(zzz40000, zzz330000, bf) → new_fsEs(new_compare(zzz40000, zzz330000, bf))
new_esEs26(zzz400000, zzz3300000, ty_Bool) → new_esEs12(zzz400000, zzz3300000)
new_lt20(zzz400000, zzz3300000, app(app(ty_@2, ceg), ceh)) → new_lt17(zzz400000, zzz3300000, ceg, ceh)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_ltEs6(GT, EQ) → False
new_esEs22(zzz400000, zzz3300000, ty_Ordering) → new_esEs8(zzz400000, zzz3300000)
new_esEs19(zzz4000, zzz3000, app(app(ty_Either, bae), baf)) → new_esEs7(zzz4000, zzz3000, bae, baf)
new_esEs21(zzz4002, zzz3002, ty_Int) → new_esEs18(zzz4002, zzz3002)
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_compare111(zzz400000, zzz3300000, False) → GT
new_esEs18(zzz400, zzz300) → new_primEqInt(zzz400, zzz300)
new_compare111(zzz400000, zzz3300000, True) → LT
new_ltEs20(zzz400001, zzz3300001, app(app(ty_@2, cga), cgb)) → new_ltEs4(zzz400001, zzz3300001, cga, cgb)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_esEs22(zzz400000, zzz3300000, ty_Float) → new_esEs15(zzz400000, zzz3300000)
new_ltEs11(zzz40000, zzz330000, cdd) → new_fsEs(new_compare5(zzz40000, zzz330000, cdd))
new_ltEs8(Nothing, Just(zzz3300000), bhc) → True
new_ltEs20(zzz400001, zzz3300001, ty_Bool) → new_ltEs14(zzz400001, zzz3300001)
new_compare27(Nothing, Just(zzz330000), False, bah) → LT
new_lt20(zzz400000, zzz3300000, ty_Ordering) → new_lt6(zzz400000, zzz3300000)
new_esEs25(zzz4001, zzz3001, app(app(ty_@2, cdb), cdc)) → new_esEs6(zzz4001, zzz3001, cdb, cdc)
new_esEs8(LT, LT) → True
new_ltEs4(@2(zzz400000, zzz400001), @2(zzz3300000, zzz3300001), cde, cdf) → new_pePe(new_lt20(zzz400000, zzz3300000, cde), new_asAs(new_esEs26(zzz400000, zzz3300000, cde), new_ltEs20(zzz400001, zzz3300001, cdf)))
new_compare25(zzz400000, zzz3300000, True, db, dc, dd) → EQ
new_esEs19(zzz4000, zzz3000, app(ty_Maybe, bah)) → new_esEs4(zzz4000, zzz3000, bah)
new_esEs21(zzz4002, zzz3002, app(ty_Ratio, bdc)) → new_esEs13(zzz4002, zzz3002, bdc)
new_lt13(zzz400001, zzz3300001, ty_Int) → new_lt9(zzz400001, zzz3300001)
new_compare17(zzz400000, zzz3300000, hh, baa) → new_compare26(zzz400000, zzz3300000, new_esEs7(zzz400000, zzz3300000, hh, baa), hh, baa)
new_esEs19(zzz4000, zzz3000, ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_esEs25(zzz4001, zzz3001, ty_Ordering) → new_esEs8(zzz4001, zzz3001)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Int) → new_ltEs12(zzz400000, zzz3300000)
new_esEs25(zzz4001, zzz3001, app(ty_Ratio, ccd)) → new_esEs13(zzz4001, zzz3001, ccd)
new_esEs24(zzz4000, zzz3000, app(app(ty_Either, cah), cba)) → new_esEs7(zzz4000, zzz3000, cah, cba)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Double) → new_ltEs7(zzz400000, zzz3300000)
new_lt14(zzz400000, zzz3300000, ty_@0) → new_lt16(zzz400000, zzz3300000)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, ty_Float) → new_esEs15(zzz4000, zzz3000)
new_esEs24(zzz4000, zzz3000, app(app(ty_@2, cbh), cca)) → new_esEs6(zzz4000, zzz3000, cbh, cca)
new_esEs22(zzz400000, zzz3300000, ty_Int) → new_esEs18(zzz400000, zzz3300000)
new_pePe(True, zzz214) → True
new_primEqNat0(Zero, Zero) → True
new_esEs26(zzz400000, zzz3300000, ty_Char) → new_esEs17(zzz400000, zzz3300000)
new_esEs19(zzz4000, zzz3000, app(ty_Ratio, bag)) → new_esEs13(zzz4000, zzz3000, bag)
new_esEs14(@0, @0) → True
new_esEs23(zzz400001, zzz3300001, ty_Integer) → new_esEs9(zzz400001, zzz3300001)
new_esEs26(zzz400000, zzz3300000, app(ty_Ratio, ceb)) → new_esEs13(zzz400000, zzz3300000, ceb)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Bool) → new_ltEs14(zzz400000, zzz3300000)
new_ltEs19(zzz40000, zzz330000, ty_@0) → new_ltEs5(zzz40000, zzz330000)
new_lt20(zzz400000, zzz3300000, ty_Integer) → new_lt7(zzz400000, zzz3300000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(ty_[], cgf), cdh) → new_ltEs10(zzz400000, zzz3300000, cgf)
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Ordering, fa) → new_esEs8(zzz4000, zzz3000)
new_lt13(zzz400001, zzz3300001, ty_Float) → new_lt10(zzz400001, zzz3300001)
new_compare(:(zzz400000, zzz400001), :(zzz3300000, zzz3300001), bf) → new_primCompAux1(zzz400000, zzz3300000, new_compare(zzz400001, zzz3300001, bf), bf)
new_ltEs19(zzz40000, zzz330000, ty_Ordering) → new_ltEs6(zzz40000, zzz330000)
new_sr(zzz4001, zzz3001) → new_primMulInt(zzz4001, zzz3001)
new_esEs4(Just(zzz4000), Just(zzz3000), app(ty_[], dcb)) → new_esEs10(zzz4000, zzz3000, dcb)
new_compare7(zzz400, zzz3300) → new_primCmpInt(zzz400, zzz3300)
new_esEs24(zzz4000, zzz3000, ty_Double) → new_esEs16(zzz4000, zzz3000)
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(app(ty_Either, cad), cae)) → new_ltEs15(zzz400000, zzz3300000, cad, cae)
new_compare12(Float(zzz400000, zzz400001), Float(zzz3300000, zzz3300001)) → new_compare7(new_sr(zzz400000, zzz3300000), new_sr(zzz400001, zzz3300001))
new_esEs26(zzz400000, zzz3300000, ty_Ordering) → new_esEs8(zzz400000, zzz3300000)
new_ltEs6(EQ, GT) → True
new_esEs8(GT, GT) → True
new_ltEs20(zzz400001, zzz3300001, app(ty_Ratio, cfd)) → new_ltEs11(zzz400001, zzz3300001, cfd)
new_esEs20(zzz4001, zzz3001, ty_Integer) → new_esEs9(zzz4001, zzz3001)
new_esEs21(zzz4002, zzz3002, ty_Double) → new_esEs16(zzz4002, zzz3002)
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_ltEs18(zzz400002, zzz3300002, ty_Ordering) → new_ltEs6(zzz400002, zzz3300002)
new_esEs11(zzz4000, zzz3000, ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, app(app(ty_Either, gf), gg)) → new_esEs7(zzz4000, zzz3000, gf, gg)
new_esEs12(False, False) → True
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(ty_[], bhd)) → new_ltEs10(zzz400000, zzz3300000, bhd)
new_esEs8(GT, LT) → False
new_esEs8(LT, GT) → False
new_ltEs18(zzz400002, zzz3300002, ty_Double) → new_ltEs7(zzz400002, zzz3300002)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_@0, cdh) → new_ltEs5(zzz400000, zzz3300000)
new_primEqInt(Neg(Succ(zzz40000)), Neg(Succ(zzz30000))) → new_primEqNat0(zzz40000, zzz30000)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, ty_Char) → new_esEs17(zzz4000, zzz3000)
new_lt14(zzz400000, zzz3300000, app(ty_[], bb)) → new_lt4(zzz400000, zzz3300000, bb)
new_esEs20(zzz4001, zzz3001, ty_Ordering) → new_esEs8(zzz4001, zzz3001)
new_esEs23(zzz400001, zzz3300001, ty_Ordering) → new_esEs8(zzz400001, zzz3300001)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_compare27(Just(zzz40000), Nothing, False, bah) → GT
new_primCompAux1(zzz400000, zzz3300000, zzz215, bf) → new_primCompAux0(zzz215, new_compare11(zzz400000, zzz3300000, bf))
new_lt14(zzz400000, zzz3300000, app(ty_Ratio, bc)) → new_lt5(zzz400000, zzz3300000, bc)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, app(app(app(ty_@3, dac), dad), dae)) → new_ltEs13(zzz400000, zzz3300000, dac, dad, dae)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, app(ty_Ratio, gh)) → new_esEs13(zzz4000, zzz3000, gh)
new_ltEs19(zzz40000, zzz330000, ty_Float) → new_ltEs9(zzz40000, zzz330000)
new_compare27(Nothing, Nothing, False, bah) → LT
new_esEs25(zzz4001, zzz3001, ty_Int) → new_esEs18(zzz4001, zzz3001)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Char) → new_ltEs17(zzz400000, zzz3300000)
new_primEqInt(Neg(Zero), Neg(Zero)) → True
new_esEs7(Left(zzz4000), Left(zzz3000), app(ty_Ratio, fd), fa) → new_esEs13(zzz4000, zzz3000, fd)
new_esEs7(Left(zzz4000), Left(zzz3000), app(app(ty_@2, gc), gd), fa) → new_esEs6(zzz4000, zzz3000, gc, gd)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, ty_Double) → new_ltEs7(zzz400000, zzz3300000)
new_ltEs6(EQ, EQ) → True
new_esEs11(zzz4000, zzz3000, app(app(app(ty_@3, ec), ed), ee)) → new_esEs5(zzz4000, zzz3000, ec, ed, ee)
new_esEs11(zzz4000, zzz3000, ty_Float) → new_esEs15(zzz4000, zzz3000)
new_primEqInt(Neg(Zero), Neg(Succ(zzz30000))) → False
new_primEqInt(Neg(Succ(zzz40000)), Neg(Zero)) → False
new_primCompAux0(zzz220, GT) → GT
new_ltEs17(zzz40000, zzz330000) → new_fsEs(new_compare19(zzz40000, zzz330000))
new_esEs8(EQ, EQ) → True
new_compare26(zzz400000, zzz3300000, True, hh, baa) → EQ
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Bool, cdh) → new_ltEs14(zzz400000, zzz3300000)
new_ltEs6(GT, GT) → True
new_esEs24(zzz4000, zzz3000, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_compare24(zzz400000, zzz3300000, True, bd, be) → EQ
new_ltEs13(@3(zzz400000, zzz400001, zzz400002), @3(zzz3300000, zzz3300001, zzz3300002), bec, bed, bee) → new_pePe(new_lt14(zzz400000, zzz3300000, bec), new_asAs(new_esEs22(zzz400000, zzz3300000, bec), new_pePe(new_lt13(zzz400001, zzz3300001, bed), new_asAs(new_esEs23(zzz400001, zzz3300001, bed), new_ltEs18(zzz400002, zzz3300002, bee)))))
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(ty_Maybe, cgh), cdh) → new_ltEs8(zzz400000, zzz3300000, cgh)
new_ltEs19(zzz40000, zzz330000, ty_Char) → new_ltEs17(zzz40000, zzz330000)
new_esEs22(zzz400000, zzz3300000, app(app(app(ty_@3, db), dc), dd)) → new_esEs5(zzz400000, zzz3300000, db, dc, dd)
new_compare([], [], bf) → EQ
new_compare11(zzz400000, zzz3300000, app(app(ty_@2, ce), cf)) → new_compare16(zzz400000, zzz3300000, ce, cf)
new_esEs26(zzz400000, zzz3300000, app(app(ty_Either, cfa), cfb)) → new_esEs7(zzz400000, zzz3300000, cfa, cfb)
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_esEs10([], :(zzz3000, zzz3001), df) → False
new_esEs10(:(zzz4000, zzz4001), [], df) → False
new_ltEs19(zzz40000, zzz330000, ty_Double) → new_ltEs7(zzz40000, zzz330000)
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_esEs4(Just(zzz4000), Just(zzz3000), app(app(ty_Either, dbc), dbd)) → new_esEs7(zzz4000, zzz3000, dbc, dbd)
new_esEs9(Integer(zzz4000), Integer(zzz3000)) → new_primEqInt(zzz4000, zzz3000)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, app(app(ty_@2, hf), hg)) → new_esEs6(zzz4000, zzz3000, hf, hg)
new_esEs22(zzz400000, zzz3300000, app(ty_Maybe, bef)) → new_esEs4(zzz400000, zzz3300000, bef)
new_esEs25(zzz4001, zzz3001, app(ty_Maybe, cce)) → new_esEs4(zzz4001, zzz3001, cce)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Int) → new_esEs18(zzz4000, zzz3000)
new_primEqInt(Pos(Succ(zzz40000)), Pos(Succ(zzz30000))) → new_primEqNat0(zzz40000, zzz30000)
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(ty_Ratio, bhe)) → new_ltEs11(zzz400000, zzz3300000, bhe)
new_compare10(zzz400000, zzz3300000, False, bd, be) → GT
new_esEs6(@2(zzz4000, zzz4001), @2(zzz3000, zzz3001), caf, cag) → new_asAs(new_esEs24(zzz4000, zzz3000, caf), new_esEs25(zzz4001, zzz3001, cag))
new_compare11(zzz400000, zzz3300000, app(ty_Ratio, bh)) → new_compare5(zzz400000, zzz3300000, bh)
new_ltEs19(zzz40000, zzz330000, ty_Bool) → new_ltEs14(zzz40000, zzz330000)
new_ltEs18(zzz400002, zzz3300002, app(app(ty_Either, bha), bhb)) → new_ltEs15(zzz400002, zzz3300002, bha, bhb)
new_esEs23(zzz400001, zzz3300001, ty_Char) → new_esEs17(zzz400001, zzz3300001)
new_esEs10([], [], df) → True
new_esEs24(zzz4000, zzz3000, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_lt14(zzz400000, zzz3300000, ty_Double) → new_lt19(zzz400000, zzz3300000)
new_primEqNat0(Succ(zzz40000), Succ(zzz30000)) → new_primEqNat0(zzz40000, zzz30000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Int, cdh) → new_ltEs12(zzz400000, zzz3300000)
new_ltEs14(False, False) → True
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Integer, fa) → new_esEs9(zzz4000, zzz3000)
new_esEs19(zzz4000, zzz3000, app(app(ty_@2, bbe), bbf)) → new_esEs6(zzz4000, zzz3000, bbe, bbf)
new_esEs4(Just(zzz4000), Just(zzz3000), app(app(app(ty_@3, dbg), dbh), dca)) → new_esEs5(zzz4000, zzz3000, dbg, dbh, dca)
new_esEs22(zzz400000, zzz3300000, ty_Bool) → new_esEs12(zzz400000, zzz3300000)
new_compare6(Double(zzz400000, zzz400001), Double(zzz3300000, zzz3300001)) → new_compare7(new_sr(zzz400000, zzz3300000), new_sr(zzz400001, zzz3300001))
new_lt11(zzz400000, zzz3300000) → new_esEs8(new_compare15(zzz400000, zzz3300000), LT)
new_compare114(zzz400000, zzz3300000, True, hh, baa) → LT
new_esEs24(zzz4000, zzz3000, ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_ltEs8(Just(zzz400000), Nothing, bhc) → False
new_esEs20(zzz4001, zzz3001, ty_Float) → new_esEs15(zzz4001, zzz3001)
new_compare5(:%(zzz400000, zzz400001), :%(zzz3300000, zzz3300001), ty_Integer) → new_compare18(new_sr0(zzz400000, zzz3300001), new_sr0(zzz3300000, zzz400001))
new_esEs11(zzz4000, zzz3000, app(ty_Maybe, eb)) → new_esEs4(zzz4000, zzz3000, eb)
new_compare24(zzz400000, zzz3300000, False, bd, be) → new_compare10(zzz400000, zzz3300000, new_ltEs4(zzz400000, zzz3300000, bd, be), bd, be)
new_compare19(Char(zzz400000), Char(zzz3300000)) → new_primCmpNat0(zzz400000, zzz3300000)
new_lt20(zzz400000, zzz3300000, app(ty_Ratio, ceb)) → new_lt5(zzz400000, zzz3300000, ceb)
new_esEs8(EQ, LT) → False
new_esEs8(LT, EQ) → False
new_primEqInt(Pos(Zero), Pos(Succ(zzz30000))) → False
new_primEqInt(Pos(Succ(zzz40000)), Pos(Zero)) → False
new_esEs24(zzz4000, zzz3000, ty_Float) → new_esEs15(zzz4000, zzz3000)
new_primCmpNat0(Zero, Zero) → EQ
new_lt14(zzz400000, zzz3300000, app(app(app(ty_@3, db), dc), dd)) → new_lt8(zzz400000, zzz3300000, db, dc, dd)
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_esEs19(zzz4000, zzz3000, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_compare11(zzz400000, zzz3300000, ty_Char) → new_compare19(zzz400000, zzz3300000)
new_lt12(zzz400000, zzz3300000) → new_esEs8(new_compare19(zzz400000, zzz3300000), LT)
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_compare9(@0, @0) → EQ
new_esEs21(zzz4002, zzz3002, ty_Float) → new_esEs15(zzz4002, zzz3002)
new_esEs22(zzz400000, zzz3300000, app(ty_Ratio, bc)) → new_esEs13(zzz400000, zzz3300000, bc)
new_esEs27(zzz4000, zzz3000, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_sr0(Integer(zzz33000000), Integer(zzz4000010)) → Integer(new_primMulInt(zzz33000000, zzz4000010))
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primEqInt(Neg(Succ(zzz40000)), Pos(zzz3000)) → False
new_primEqInt(Pos(Succ(zzz40000)), Neg(zzz3000)) → False
new_esEs24(zzz4000, zzz3000, app(ty_Ratio, cbb)) → new_esEs13(zzz4000, zzz3000, cbb)
new_esEs4(Just(zzz4000), Just(zzz3000), app(app(ty_@2, dcc), dcd)) → new_esEs6(zzz4000, zzz3000, dcc, dcd)
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Float, fa) → new_esEs15(zzz4000, zzz3000)
new_compare18(Integer(zzz400000), Integer(zzz3300000)) → new_primCmpInt(zzz400000, zzz3300000)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Ordering) → new_ltEs6(zzz400000, zzz3300000)
new_esEs22(zzz400000, zzz3300000, app(app(ty_@2, bd), be)) → new_esEs6(zzz400000, zzz3300000, bd, be)
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primEqInt(Neg(Zero), Pos(Succ(zzz30000))) → False
new_primEqInt(Pos(Zero), Neg(Succ(zzz30000))) → False
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Float) → new_ltEs9(zzz400000, zzz3300000)
new_lt8(zzz400000, zzz3300000, db, dc, dd) → new_esEs8(new_compare14(zzz400000, zzz3300000, db, dc, dd), LT)
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_ltEs18(zzz400002, zzz3300002, app(ty_Ratio, bgb)) → new_ltEs11(zzz400002, zzz3300002, bgb)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, app(ty_Maybe, ha)) → new_esEs4(zzz4000, zzz3000, ha)
new_esEs25(zzz4001, zzz3001, ty_@0) → new_esEs14(zzz4001, zzz3001)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, ty_Char) → new_ltEs17(zzz400000, zzz3300000)
new_compare11(zzz400000, zzz3300000, app(app(app(ty_@3, cb), cc), cd)) → new_compare14(zzz400000, zzz3300000, cb, cc, cd)
new_esEs23(zzz400001, zzz3300001, ty_Int) → new_esEs18(zzz400001, zzz3300001)
new_ltEs5(zzz40000, zzz330000) → new_fsEs(new_compare9(zzz40000, zzz330000))
new_esEs25(zzz4001, zzz3001, ty_Float) → new_esEs15(zzz4001, zzz3001)
new_esEs8(GT, EQ) → False
new_esEs8(EQ, GT) → False
new_compare13(zzz4000, zzz33000, bah) → new_compare27(zzz4000, zzz33000, new_esEs4(zzz4000, zzz33000, bah), bah)
new_esEs16(Double(zzz4000, zzz4001), Double(zzz3000, zzz3001)) → new_esEs18(new_sr(zzz4000, zzz3000), new_sr(zzz4001, zzz3001))
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Float) → new_esEs15(zzz4000, zzz3000)
new_ltEs19(zzz40000, zzz330000, app(app(app(ty_@3, bec), bed), bee)) → new_ltEs13(zzz40000, zzz330000, bec, bed, bee)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_lt20(zzz400000, zzz3300000, ty_@0) → new_lt16(zzz400000, zzz3300000)
new_esEs10(:(zzz4000, zzz4001), :(zzz3000, zzz3001), df) → new_asAs(new_esEs11(zzz4000, zzz3000, df), new_esEs10(zzz4001, zzz3001, df))
new_primCompAux0(zzz220, LT) → LT
new_esEs7(Right(zzz4000), Right(zzz3000), ge, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_@0) → new_ltEs5(zzz400000, zzz3300000)
new_lt13(zzz400001, zzz3300001, ty_Bool) → new_lt11(zzz400001, zzz3300001)
new_compare16(zzz400000, zzz3300000, bd, be) → new_compare24(zzz400000, zzz3300000, new_esEs6(zzz400000, zzz3300000, bd, be), bd, be)
new_compare11(zzz400000, zzz3300000, ty_Double) → new_compare6(zzz400000, zzz3300000)
new_compare113(zzz400000, zzz3300000, True) → LT
new_compare114(zzz400000, zzz3300000, False, hh, baa) → GT
new_not(False) → True
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Int, fa) → new_esEs18(zzz4000, zzz3000)
new_compare110(zzz195, zzz196, True, de) → LT
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Double, fa) → new_esEs16(zzz4000, zzz3000)
new_lt16(zzz400000, zzz3300000) → new_esEs8(new_compare9(zzz400000, zzz3300000), LT)
new_ltEs19(zzz40000, zzz330000, app(ty_[], bf)) → new_ltEs10(zzz40000, zzz330000, bf)
new_lt13(zzz400001, zzz3300001, ty_Integer) → new_lt7(zzz400001, zzz3300001)
new_esEs23(zzz400001, zzz3300001, app(app(ty_@2, bfe), bff)) → new_esEs6(zzz400001, zzz3300001, bfe, bff)
new_esEs19(zzz4000, zzz3000, ty_Char) → new_esEs17(zzz4000, zzz3000)
new_compare113(zzz400000, zzz3300000, False) → GT
new_esEs7(Right(zzz4000), Right(zzz3000), ge, ty_@0) → new_esEs14(zzz4000, zzz3000)
new_esEs26(zzz400000, zzz3300000, ty_Int) → new_esEs18(zzz400000, zzz3300000)
new_esEs11(zzz4000, zzz3000, ty_Double) → new_esEs16(zzz4000, zzz3000)
new_esEs11(zzz4000, zzz3000, ty_@0) → new_esEs14(zzz4000, zzz3000)
new_lt13(zzz400001, zzz3300001, app(ty_Ratio, beh)) → new_lt5(zzz400001, zzz3300001, beh)
new_esEs23(zzz400001, zzz3300001, app(ty_[], beg)) → new_esEs10(zzz400001, zzz3300001, beg)
new_ltEs19(zzz40000, zzz330000, app(app(ty_Either, cdg), cdh)) → new_ltEs15(zzz40000, zzz330000, cdg, cdh)
new_esEs19(zzz4000, zzz3000, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_compare28(zzz400000, zzz3300000, True) → EQ
new_lt13(zzz400001, zzz3300001, app(app(ty_@2, bfe), bff)) → new_lt17(zzz400001, zzz3300001, bfe, bff)
new_esEs20(zzz4001, zzz3001, ty_Int) → new_esEs18(zzz4001, zzz3001)
new_esEs20(zzz4001, zzz3001, app(app(app(ty_@3, bcc), bcd), bce)) → new_esEs5(zzz4001, zzz3001, bcc, bcd, bce)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_esEs21(zzz4002, zzz3002, app(app(app(ty_@3, bde), bdf), bdg)) → new_esEs5(zzz4002, zzz3002, bde, bdf, bdg)
new_lt14(zzz400000, zzz3300000, ty_Int) → new_lt9(zzz400000, zzz3300000)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_ltEs18(zzz400002, zzz3300002, ty_Float) → new_ltEs9(zzz400002, zzz3300002)
new_esEs5(@3(zzz4000, zzz4001, zzz4002), @3(zzz3000, zzz3001, zzz3002), bab, bac, bad) → new_asAs(new_esEs19(zzz4000, zzz3000, bab), new_asAs(new_esEs20(zzz4001, zzz3001, bac), new_esEs21(zzz4002, zzz3002, bad)))
new_esEs7(Left(zzz4000), Left(zzz3000), ty_@0, fa) → new_esEs14(zzz4000, zzz3000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(app(app(ty_@3, cha), chb), chc), cdh) → new_ltEs13(zzz400000, zzz3300000, cha, chb, chc)
new_ltEs19(zzz40000, zzz330000, app(ty_Maybe, bhc)) → new_ltEs8(zzz40000, zzz330000, bhc)
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primEqNat0(Succ(zzz40000), Zero) → False
new_primEqNat0(Zero, Succ(zzz30000)) → False
new_ltEs19(zzz40000, zzz330000, ty_Int) → new_ltEs12(zzz40000, zzz330000)
new_ltEs6(LT, LT) → True
new_lt20(zzz400000, zzz3300000, app(app(ty_Either, cfa), cfb)) → new_lt18(zzz400000, zzz3300000, cfa, cfb)
new_ltEs6(EQ, LT) → False
new_esEs20(zzz4001, zzz3001, app(ty_[], bcf)) → new_esEs10(zzz4001, zzz3001, bcf)
new_ltEs14(True, True) → True
new_primEqInt(Pos(Zero), Pos(Zero)) → True
new_ltEs12(zzz40000, zzz330000) → new_fsEs(new_compare7(zzz40000, zzz330000))
new_esEs4(Nothing, Nothing, dbb) → True
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Char, fa) → new_esEs17(zzz4000, zzz3000)
new_esEs4(Just(zzz4000), Just(zzz3000), app(ty_Ratio, dbe)) → new_esEs13(zzz4000, zzz3000, dbe)
new_esEs11(zzz4000, zzz3000, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_lt14(zzz400000, zzz3300000, ty_Bool) → new_lt11(zzz400000, zzz3300000)
new_lt18(zzz400000, zzz3300000, hh, baa) → new_esEs8(new_compare17(zzz400000, zzz3300000, hh, baa), LT)
new_esEs21(zzz4002, zzz3002, app(app(ty_Either, bda), bdb)) → new_esEs7(zzz4002, zzz3002, bda, bdb)
new_ltEs18(zzz400002, zzz3300002, app(app(app(ty_@3, bgd), bge), bgf)) → new_ltEs13(zzz400002, zzz3300002, bgd, bge, bgf)
new_lt13(zzz400001, zzz3300001, app(ty_Maybe, bfa)) → new_lt15(zzz400001, zzz3300001, bfa)
new_lt13(zzz400001, zzz3300001, ty_Double) → new_lt19(zzz400001, zzz3300001)
new_ltEs20(zzz400001, zzz3300001, ty_@0) → new_ltEs5(zzz400001, zzz3300001)
new_compare112(zzz400000, zzz3300000, True, db, dc, dd) → LT
new_esEs21(zzz4002, zzz3002, ty_Char) → new_esEs17(zzz4002, zzz3002)
new_lt10(zzz400000, zzz3300000) → new_esEs8(new_compare12(zzz400000, zzz3300000), LT)
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_compare110(zzz195, zzz196, False, de) → GT
new_ltEs20(zzz400001, zzz3300001, ty_Int) → new_ltEs12(zzz400001, zzz3300001)
new_lt14(zzz400000, zzz3300000, app(app(ty_@2, bd), be)) → new_lt17(zzz400000, zzz3300000, bd, be)
new_ltEs20(zzz400001, zzz3300001, app(app(app(ty_@3, cff), cfg), cfh)) → new_ltEs13(zzz400001, zzz3300001, cff, cfg, cfh)
new_esEs26(zzz400000, zzz3300000, ty_@0) → new_esEs14(zzz400000, zzz3300000)
new_esEs11(zzz4000, zzz3000, app(app(ty_Either, dg), dh)) → new_esEs7(zzz4000, zzz3000, dg, dh)
new_lt14(zzz400000, zzz3300000, app(ty_Maybe, bef)) → new_lt15(zzz400000, zzz3300000, bef)
new_ltEs18(zzz400002, zzz3300002, app(ty_[], bga)) → new_ltEs10(zzz400002, zzz3300002, bga)
new_esEs24(zzz4000, zzz3000, app(ty_[], cbg)) → new_esEs10(zzz4000, zzz3000, cbg)
new_esEs21(zzz4002, zzz3002, app(ty_Maybe, bdd)) → new_esEs4(zzz4002, zzz3002, bdd)
new_compare11(zzz400000, zzz3300000, ty_@0) → new_compare9(zzz400000, zzz3300000)
new_esEs20(zzz4001, zzz3001, app(app(ty_Either, bbg), bbh)) → new_esEs7(zzz4001, zzz3001, bbg, bbh)
new_ltEs20(zzz400001, zzz3300001, app(app(ty_Either, cgc), cgd)) → new_ltEs15(zzz400001, zzz3300001, cgc, cgd)
new_esEs23(zzz400001, zzz3300001, ty_@0) → new_esEs14(zzz400001, zzz3300001)
new_esEs11(zzz4000, zzz3000, app(app(ty_@2, eg), eh)) → new_esEs6(zzz4000, zzz3000, eg, eh)
new_esEs28(zzz4001, zzz3001, ty_Integer) → new_esEs9(zzz4001, zzz3001)
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs25(zzz4001, zzz3001, ty_Bool) → new_esEs12(zzz4001, zzz3001)
new_esEs21(zzz4002, zzz3002, ty_@0) → new_esEs14(zzz4002, zzz3002)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, app(ty_[], chh)) → new_ltEs10(zzz400000, zzz3300000, chh)
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(ty_Maybe, bhf)) → new_ltEs8(zzz400000, zzz3300000, bhf)
new_esEs19(zzz4000, zzz3000, ty_Double) → new_esEs16(zzz4000, zzz3000)
new_esEs13(:%(zzz4000, zzz4001), :%(zzz3000, zzz3001), cge) → new_asAs(new_esEs27(zzz4000, zzz3000, cge), new_esEs28(zzz4001, zzz3001, cge))
new_lt14(zzz400000, zzz3300000, ty_Float) → new_lt10(zzz400000, zzz3300000)
new_asAs(False, zzz202) → False
new_lt20(zzz400000, zzz3300000, ty_Double) → new_lt19(zzz400000, zzz3300000)
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, ty_Ordering) → new_ltEs6(zzz400000, zzz3300000)
new_compare14(zzz400000, zzz3300000, db, dc, dd) → new_compare25(zzz400000, zzz3300000, new_esEs5(zzz400000, zzz3300000, db, dc, dd), db, dc, dd)
new_esEs21(zzz4002, zzz3002, ty_Ordering) → new_esEs8(zzz4002, zzz3002)
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(app(ty_@2, cab), cac)) → new_ltEs4(zzz400000, zzz3300000, cab, cac)
new_compare11(zzz400000, zzz3300000, ty_Bool) → new_compare15(zzz400000, zzz3300000)
new_esEs22(zzz400000, zzz3300000, app(ty_[], bb)) → new_esEs10(zzz400000, zzz3300000, bb)
new_ltEs16(zzz40000, zzz330000) → new_fsEs(new_compare18(zzz40000, zzz330000))
new_lt20(zzz400000, zzz3300000, app(ty_[], cea)) → new_lt4(zzz400000, zzz3300000, cea)
new_lt19(zzz400000, zzz3300000) → new_esEs8(new_compare6(zzz400000, zzz3300000), LT)
new_esEs23(zzz400001, zzz3300001, ty_Float) → new_esEs15(zzz400001, zzz3300001)
new_ltEs18(zzz400002, zzz3300002, ty_Bool) → new_ltEs14(zzz400002, zzz3300002)
new_esEs21(zzz4002, zzz3002, ty_Integer) → new_esEs9(zzz4002, zzz3002)
new_compare11(zzz400000, zzz3300000, app(app(ty_Either, cg), da)) → new_compare17(zzz400000, zzz3300000, cg, da)
new_compare25(zzz400000, zzz3300000, False, db, dc, dd) → new_compare112(zzz400000, zzz3300000, new_ltEs13(zzz400000, zzz3300000, db, dc, dd), db, dc, dd)
new_esEs26(zzz400000, zzz3300000, ty_Integer) → new_esEs9(zzz400000, zzz3300000)
new_esEs24(zzz4000, zzz3000, ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_esEs23(zzz400001, zzz3300001, ty_Double) → new_esEs16(zzz400001, zzz3300001)
new_ltEs6(LT, GT) → True
new_compare11(zzz400000, zzz3300000, ty_Ordering) → new_compare8(zzz400000, zzz3300000)
new_lt13(zzz400001, zzz3300001, ty_Ordering) → new_lt6(zzz400001, zzz3300001)
new_compare112(zzz400000, zzz3300000, False, db, dc, dd) → GT
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Double) → new_esEs16(zzz4000, zzz3000)
new_esEs12(True, False) → False
new_esEs12(False, True) → False
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, ty_Int) → new_ltEs12(zzz400000, zzz3300000)
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Bool, fa) → new_esEs12(zzz4000, zzz3000)
new_esEs11(zzz4000, zzz3000, app(ty_Ratio, ea)) → new_esEs13(zzz4000, zzz3000, ea)
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(ty_Ratio, cgg), cdh) → new_ltEs11(zzz400000, zzz3300000, cgg)
new_compare11(zzz400000, zzz3300000, ty_Float) → new_compare12(zzz400000, zzz3300000)
new_esEs11(zzz4000, zzz3000, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_ltEs18(zzz400002, zzz3300002, app(ty_Maybe, bgc)) → new_ltEs8(zzz400002, zzz3300002, bgc)
new_ltEs14(True, False) → False
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_ltEs8(Nothing, Nothing, bhc) → True
new_esEs22(zzz400000, zzz3300000, ty_@0) → new_esEs14(zzz400000, zzz3300000)
new_esEs25(zzz4001, zzz3001, app(app(app(ty_@3, ccf), ccg), cch)) → new_esEs5(zzz4001, zzz3001, ccf, ccg, cch)
new_esEs15(Float(zzz4000, zzz4001), Float(zzz3000, zzz3001)) → new_esEs18(new_sr(zzz4000, zzz3000), new_sr(zzz4001, zzz3001))
new_lt20(zzz400000, zzz3300000, ty_Char) → new_lt12(zzz400000, zzz3300000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Integer, cdh) → new_ltEs16(zzz400000, zzz3300000)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, app(app(ty_Either, dah), dba)) → new_ltEs15(zzz400000, zzz3300000, dah, dba)
new_compare27(zzz4000, zzz33000, True, bah) → EQ
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, ty_Bool) → new_ltEs14(zzz400000, zzz3300000)
new_compare28(zzz400000, zzz3300000, False) → new_compare113(zzz400000, zzz3300000, new_ltEs6(zzz400000, zzz3300000))
new_esEs22(zzz400000, zzz3300000, ty_Double) → new_esEs16(zzz400000, zzz3300000)
new_gt(zzz330, zzz3440, h) → new_esEs8(new_compare13(zzz330, zzz3440, h), GT)
new_esEs20(zzz4001, zzz3001, ty_Char) → new_esEs17(zzz4001, zzz3001)
new_ltEs7(zzz40000, zzz330000) → new_fsEs(new_compare6(zzz40000, zzz330000))
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, app(ty_Ratio, daa)) → new_ltEs11(zzz400000, zzz3300000, daa)
new_primPlusNat1(Zero, Zero) → Zero
new_ltEs6(LT, EQ) → True
new_ltEs6(GT, LT) → False
new_asAs(True, zzz202) → zzz202
new_esEs26(zzz400000, zzz3300000, app(app(app(ty_@3, ced), cee), cef)) → new_esEs5(zzz400000, zzz3300000, ced, cee, cef)
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_esEs11(zzz4000, zzz3000, ty_Char) → new_esEs17(zzz4000, zzz3000)
new_esEs11(zzz4000, zzz3000, app(ty_[], ef)) → new_esEs10(zzz4000, zzz3000, ef)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Integer) → new_ltEs16(zzz400000, zzz3300000)
new_compare8(zzz400000, zzz3300000) → new_compare28(zzz400000, zzz3300000, new_esEs8(zzz400000, zzz3300000))
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, ty_Integer) → new_ltEs16(zzz400000, zzz3300000)
new_lt13(zzz400001, zzz3300001, ty_@0) → new_lt16(zzz400001, zzz3300001)
new_fsEs(zzz205) → new_not(new_esEs8(zzz205, GT))
new_ltEs20(zzz400001, zzz3300001, ty_Float) → new_ltEs9(zzz400001, zzz3300001)
new_esEs26(zzz400000, zzz3300000, app(app(ty_@2, ceg), ceh)) → new_esEs6(zzz400000, zzz3300000, ceg, ceh)
new_esEs23(zzz400001, zzz3300001, app(app(app(ty_@3, bfb), bfc), bfd)) → new_esEs5(zzz400001, zzz3300001, bfb, bfc, bfd)
new_lt20(zzz400000, zzz3300000, ty_Int) → new_lt9(zzz400000, zzz3300000)
new_esEs19(zzz4000, zzz3000, ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_esEs26(zzz400000, zzz3300000, ty_Double) → new_esEs16(zzz400000, zzz3300000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(app(ty_Either, chf), chg), cdh) → new_ltEs15(zzz400000, zzz3300000, chf, chg)
new_ltEs15(Left(zzz400000), Right(zzz3300000), cdg, cdh) → True
new_ltEs18(zzz400002, zzz3300002, app(app(ty_@2, bgg), bgh)) → new_ltEs4(zzz400002, zzz3300002, bgg, bgh)
new_ltEs20(zzz400001, zzz3300001, ty_Ordering) → new_ltEs6(zzz400001, zzz3300001)
new_lt17(zzz400000, zzz3300000, bd, be) → new_esEs8(new_compare16(zzz400000, zzz3300000, bd, be), LT)
new_compare5(:%(zzz400000, zzz400001), :%(zzz3300000, zzz3300001), ty_Int) → new_compare7(new_sr(zzz400000, zzz3300001), new_sr(zzz3300000, zzz400001))
new_esEs21(zzz4002, zzz3002, ty_Bool) → new_esEs12(zzz4002, zzz3002)
new_lt5(zzz400000, zzz3300000, bc) → new_esEs8(new_compare5(zzz400000, zzz3300000, bc), LT)
new_esEs25(zzz4001, zzz3001, app(app(ty_Either, ccb), ccc)) → new_esEs7(zzz4001, zzz3001, ccb, ccc)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCompAux0(zzz220, EQ) → zzz220
new_ltEs15(Right(zzz400000), Left(zzz3300000), cdg, cdh) → False
new_compare29(zzz400000, zzz3300000, False) → new_compare111(zzz400000, zzz3300000, new_ltEs14(zzz400000, zzz3300000))
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(app(ty_@2, chd), che), cdh) → new_ltEs4(zzz400000, zzz3300000, chd, che)
new_ltEs20(zzz400001, zzz3300001, ty_Char) → new_ltEs17(zzz400001, zzz3300001)
new_primEqInt(Neg(Zero), Pos(Zero)) → True
new_primEqInt(Pos(Zero), Neg(Zero)) → True
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Float, cdh) → new_ltEs9(zzz400000, zzz3300000)
new_not(True) → False
new_esEs25(zzz4001, zzz3001, ty_Integer) → new_esEs9(zzz4001, zzz3001)

The set Q consists of the following terms:

new_esEs19(x0, x1, ty_Integer)
new_esEs24(x0, x1, ty_Ordering)
new_ltEs20(x0, x1, app(ty_Maybe, x2))
new_lt13(x0, x1, app(ty_Ratio, x2))
new_lt14(x0, x1, ty_Double)
new_ltEs8(Just(x0), Just(x1), ty_Int)
new_esEs7(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_esEs22(x0, x1, app(app(ty_Either, x2), x3))
new_esEs4(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_ltEs13(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_ltEs15(Left(x0), Left(x1), ty_@0, x2)
new_esEs7(Left(x0), Left(x1), ty_Char, x2)
new_primPlusNat0(Succ(x0), x1)
new_esEs11(x0, x1, ty_@0)
new_primPlusNat0(Zero, x0)
new_pePe(True, x0)
new_ltEs19(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs19(x0, x1, ty_Int)
new_asAs(True, x0)
new_compare26(x0, x1, False, x2, x3)
new_lt13(x0, x1, ty_Ordering)
new_esEs7(Right(x0), Right(x1), x2, app(ty_[], x3))
new_esEs12(False, False)
new_esEs20(x0, x1, app(ty_[], x2))
new_ltEs8(Just(x0), Just(x1), ty_Integer)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_esEs24(x0, x1, app(app(ty_Either, x2), x3))
new_lt11(x0, x1)
new_ltEs19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare111(x0, x1, False)
new_esEs20(x0, x1, ty_Bool)
new_esEs26(x0, x1, ty_Int)
new_ltEs20(x0, x1, app(app(ty_@2, x2), x3))
new_compare15(x0, x1)
new_lt14(x0, x1, ty_Ordering)
new_esEs26(x0, x1, ty_Double)
new_esEs24(x0, x1, ty_@0)
new_primEqInt(Neg(Succ(x0)), Neg(Zero))
new_compare19(Char(x0), Char(x1))
new_primPlusNat1(Succ(x0), Zero)
new_compare28(x0, x1, False)
new_esEs26(x0, x1, app(ty_[], x2))
new_esEs22(x0, x1, ty_Integer)
new_esEs19(x0, x1, app(app(ty_@2, x2), x3))
new_compare6(Double(x0, x1), Double(x2, x3))
new_esEs4(Just(x0), Just(x1), ty_Bool)
new_compare27(Nothing, Nothing, False, x0)
new_esEs11(x0, x1, ty_Float)
new_primCompAux0(x0, LT)
new_esEs7(Left(x0), Left(x1), app(ty_[], x2), x3)
new_ltEs14(True, False)
new_ltEs14(False, True)
new_esEs22(x0, x1, app(ty_[], x2))
new_esEs25(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare25(x0, x1, False, x2, x3, x4)
new_esEs8(GT, GT)
new_primMulInt(Pos(x0), Pos(x1))
new_compare(:(x0, x1), [], x2)
new_ltEs18(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt10(x0, x1)
new_primEqInt(Pos(Succ(x0)), Neg(x1))
new_primEqInt(Neg(Succ(x0)), Pos(x1))
new_esEs7(Left(x0), Left(x1), ty_Double, x2)
new_esEs8(LT, LT)
new_lt20(x0, x1, ty_Double)
new_esEs19(x0, x1, ty_Int)
new_ltEs7(x0, x1)
new_esEs21(x0, x1, app(app(ty_@2, x2), x3))
new_esEs4(Just(x0), Just(x1), app(ty_Ratio, x2))
new_ltEs15(Right(x0), Right(x1), x2, ty_Int)
new_compare11(x0, x1, ty_@0)
new_primEqInt(Pos(Succ(x0)), Pos(Zero))
new_lt13(x0, x1, ty_Double)
new_esEs7(Right(x0), Left(x1), x2, x3)
new_esEs7(Left(x0), Right(x1), x2, x3)
new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_lt13(x0, x1, ty_@0)
new_ltEs6(EQ, EQ)
new_lt20(x0, x1, ty_Integer)
new_esEs22(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs10([], :(x0, x1), x2)
new_esEs7(Left(x0), Left(x1), ty_Ordering, x2)
new_ltEs18(x0, x1, ty_Int)
new_compare11(x0, x1, app(ty_Ratio, x2))
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_lt14(x0, x1, ty_Int)
new_esEs23(x0, x1, app(ty_Maybe, x2))
new_compare11(x0, x1, app(ty_[], x2))
new_ltEs15(Left(x0), Left(x1), ty_Bool, x2)
new_esEs7(Left(x0), Left(x1), ty_@0, x2)
new_esEs10(:(x0, x1), [], x2)
new_esEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs11(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs6(LT, EQ)
new_esEs7(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_ltEs6(EQ, LT)
new_lt7(x0, x1)
new_esEs24(x0, x1, app(ty_Maybe, x2))
new_esEs11(x0, x1, ty_Integer)
new_esEs20(x0, x1, ty_Float)
new_lt9(x0, x1)
new_primCmpNat0(Succ(x0), Zero)
new_primEqNat0(Zero, Zero)
new_esEs19(x0, x1, app(ty_Maybe, x2))
new_esEs18(x0, x1)
new_ltEs10(x0, x1, x2)
new_lt14(x0, x1, app(app(ty_@2, x2), x3))
new_esEs19(x0, x1, ty_Ordering)
new_esEs21(x0, x1, app(ty_Ratio, x2))
new_lt20(x0, x1, ty_Ordering)
new_esEs19(x0, x1, ty_Char)
new_esEs7(Right(x0), Right(x1), x2, ty_Char)
new_compare114(x0, x1, False, x2, x3)
new_esEs22(x0, x1, ty_Char)
new_ltEs15(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_compare114(x0, x1, True, x2, x3)
new_lt20(x0, x1, ty_@0)
new_esEs23(x0, x1, ty_Char)
new_lt14(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs8(Nothing, Nothing, x0)
new_primMulNat0(Zero, Zero)
new_compare([], :(x0, x1), x2)
new_lt19(x0, x1)
new_lt13(x0, x1, app(app(ty_Either, x2), x3))
new_esEs23(x0, x1, app(app(ty_@2, x2), x3))
new_compare27(Just(x0), Just(x1), False, x2)
new_esEs19(x0, x1, app(app(ty_Either, x2), x3))
new_compare11(x0, x1, ty_Int)
new_esEs4(Just(x0), Just(x1), ty_Int)
new_ltEs18(x0, x1, ty_Bool)
new_primMulNat0(Zero, Succ(x0))
new_compare11(x0, x1, ty_Double)
new_ltEs8(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_ltEs15(Right(x0), Right(x1), x2, ty_Char)
new_ltEs20(x0, x1, ty_Char)
new_ltEs20(x0, x1, ty_Bool)
new_compare(:(x0, x1), :(x2, x3), x4)
new_primEqInt(Pos(Zero), Neg(Succ(x0)))
new_primEqInt(Neg(Zero), Pos(Succ(x0)))
new_ltEs8(Just(x0), Just(x1), ty_Double)
new_esEs4(Just(x0), Just(x1), ty_Integer)
new_primCmpNat0(Succ(x0), Succ(x1))
new_lt12(x0, x1)
new_lt14(x0, x1, ty_Char)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_ltEs15(Left(x0), Left(x1), ty_Char, x2)
new_compare8(x0, x1)
new_ltEs17(x0, x1)
new_esEs26(x0, x1, ty_Integer)
new_esEs23(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs7(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_esEs4(Just(x0), Just(x1), app(ty_[], x2))
new_lt20(x0, x1, app(ty_Ratio, x2))
new_esEs14(@0, @0)
new_ltEs8(Just(x0), Just(x1), app(ty_Ratio, x2))
new_compare12(Float(x0, x1), Float(x2, x3))
new_compare27(x0, x1, True, x2)
new_esEs19(x0, x1, ty_Double)
new_ltEs20(x0, x1, app(ty_[], x2))
new_ltEs15(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_lt8(x0, x1, x2, x3, x4)
new_esEs23(x0, x1, ty_@0)
new_esEs11(x0, x1, ty_Int)
new_primPlusNat1(Succ(x0), Succ(x1))
new_ltEs6(GT, LT)
new_ltEs6(LT, GT)
new_esEs23(x0, x1, ty_Ordering)
new_compare110(x0, x1, True, x2)
new_ltEs19(x0, x1, ty_Integer)
new_ltEs11(x0, x1, x2)
new_esEs4(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_compare13(x0, x1, x2)
new_esEs10(:(x0, x1), :(x2, x3), x4)
new_ltEs15(Right(x0), Left(x1), x2, x3)
new_ltEs15(Left(x0), Right(x1), x2, x3)
new_esEs23(x0, x1, app(app(ty_Either, x2), x3))
new_pePe(False, x0)
new_lt4(x0, x1, x2)
new_esEs26(x0, x1, ty_Char)
new_ltEs8(Just(x0), Just(x1), ty_@0)
new_esEs27(x0, x1, ty_Integer)
new_compare29(x0, x1, True)
new_ltEs18(x0, x1, app(app(ty_@2, x2), x3))
new_esEs11(x0, x1, ty_Double)
new_lt20(x0, x1, app(app(ty_@2, x2), x3))
new_compare11(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs18(x0, x1, ty_Char)
new_esEs19(x0, x1, app(ty_[], x2))
new_ltEs18(x0, x1, app(ty_Maybe, x2))
new_esEs7(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_esEs23(x0, x1, ty_Float)
new_esEs22(x0, x1, app(app(ty_@2, x2), x3))
new_esEs21(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs8(Just(x0), Just(x1), app(ty_[], x2))
new_primMulNat0(Succ(x0), Zero)
new_primEqInt(Neg(Zero), Neg(Succ(x0)))
new_esEs24(x0, x1, app(ty_Ratio, x2))
new_ltEs19(x0, x1, app(ty_Maybe, x2))
new_ltEs15(Right(x0), Right(x1), x2, ty_Bool)
new_primPlusNat1(Zero, Zero)
new_ltEs18(x0, x1, ty_Integer)
new_esEs26(x0, x1, ty_Bool)
new_esEs26(x0, x1, ty_Float)
new_esEs25(x0, x1, app(app(ty_@2, x2), x3))
new_esEs16(Double(x0, x1), Double(x2, x3))
new_esEs21(x0, x1, app(ty_[], x2))
new_esEs25(x0, x1, ty_Char)
new_ltEs19(x0, x1, ty_@0)
new_ltEs15(Left(x0), Left(x1), ty_Ordering, x2)
new_ltEs15(Left(x0), Left(x1), ty_Integer, x2)
new_esEs25(x0, x1, app(ty_Maybe, x2))
new_primCompAux1(x0, x1, x2, x3)
new_ltEs20(x0, x1, ty_Int)
new_esEs25(x0, x1, app(ty_[], x2))
new_esEs24(x0, x1, app(ty_[], x2))
new_lt14(x0, x1, app(ty_[], x2))
new_compare16(x0, x1, x2, x3)
new_esEs22(x0, x1, app(ty_Maybe, x2))
new_ltEs8(Just(x0), Nothing, x1)
new_ltEs18(x0, x1, ty_Float)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_esEs26(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs18(x0, x1, app(app(ty_Either, x2), x3))
new_compare5(:%(x0, x1), :%(x2, x3), ty_Integer)
new_esEs20(x0, x1, ty_Int)
new_ltEs15(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_ltEs8(Nothing, Just(x0), x1)
new_esEs4(Just(x0), Just(x1), ty_Ordering)
new_lt6(x0, x1)
new_esEs4(Nothing, Nothing, x0)
new_lt14(x0, x1, ty_Bool)
new_esEs21(x0, x1, ty_Char)
new_esEs21(x0, x1, ty_Double)
new_ltEs15(Left(x0), Left(x1), app(ty_[], x2), x3)
new_ltEs9(x0, x1)
new_esEs25(x0, x1, ty_Float)
new_compare11(x0, x1, ty_Integer)
new_compare27(Nothing, Just(x0), False, x1)
new_esEs21(x0, x1, ty_Bool)
new_primMulNat0(Succ(x0), Succ(x1))
new_lt20(x0, x1, ty_Bool)
new_esEs21(x0, x1, app(ty_Maybe, x2))
new_esEs26(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs20(x0, x1, app(app(ty_Either, x2), x3))
new_lt16(x0, x1)
new_compare17(x0, x1, x2, x3)
new_compare18(Integer(x0), Integer(x1))
new_esEs7(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_esEs7(Left(x0), Left(x1), ty_Float, x2)
new_compare11(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs12(True, True)
new_esEs24(x0, x1, ty_Integer)
new_esEs4(Just(x0), Just(x1), ty_Float)
new_esEs21(x0, x1, ty_Ordering)
new_esEs13(:%(x0, x1), :%(x2, x3), x4)
new_esEs24(x0, x1, ty_Double)
new_ltEs19(x0, x1, ty_Bool)
new_esEs7(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_esEs7(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_lt13(x0, x1, ty_Int)
new_lt5(x0, x1, x2)
new_lt13(x0, x1, app(ty_Maybe, x2))
new_compare112(x0, x1, False, x2, x3, x4)
new_esEs7(Left(x0), Left(x1), ty_Bool, x2)
new_esEs11(x0, x1, app(ty_Ratio, x2))
new_ltEs15(Right(x0), Right(x1), x2, ty_Double)
new_lt14(x0, x1, ty_Integer)
new_ltEs18(x0, x1, ty_@0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_lt14(x0, x1, app(ty_Ratio, x2))
new_lt13(x0, x1, ty_Char)
new_primEqInt(Neg(Zero), Pos(Zero))
new_primEqInt(Pos(Zero), Neg(Zero))
new_primEqNat0(Succ(x0), Succ(x1))
new_compare14(x0, x1, x2, x3, x4)
new_esEs24(x0, x1, ty_Char)
new_ltEs15(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_esEs21(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs8(Just(x0), Just(x1), ty_Float)
new_esEs25(x0, x1, app(ty_Ratio, x2))
new_esEs26(x0, x1, ty_Ordering)
new_esEs26(x0, x1, app(ty_Maybe, x2))
new_esEs19(x0, x1, ty_Float)
new_esEs20(x0, x1, ty_@0)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_compare11(x0, x1, ty_Ordering)
new_lt20(x0, x1, ty_Float)
new_esEs24(x0, x1, ty_Int)
new_compare110(x0, x1, False, x2)
new_primEqInt(Neg(Zero), Neg(Zero))
new_asAs(False, x0)
new_ltEs15(Right(x0), Right(x1), x2, ty_Integer)
new_lt13(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs4(Just(x0), Just(x1), ty_Double)
new_lt15(x0, x1, x2)
new_esEs5(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_ltEs20(x0, x1, app(ty_Ratio, x2))
new_compare24(x0, x1, True, x2, x3)
new_compare113(x0, x1, True)
new_esEs4(Just(x0), Nothing, x1)
new_lt13(x0, x1, ty_Float)
new_primCmpNat0(Zero, Succ(x0))
new_lt14(x0, x1, app(ty_Maybe, x2))
new_esEs26(x0, x1, app(app(ty_@2, x2), x3))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_ltEs19(x0, x1, app(ty_Ratio, x2))
new_esEs11(x0, x1, ty_Bool)
new_esEs22(x0, x1, ty_Double)
new_compare25(x0, x1, True, x2, x3, x4)
new_esEs25(x0, x1, ty_Bool)
new_esEs28(x0, x1, ty_Int)
new_ltEs15(Right(x0), Right(x1), x2, ty_Float)
new_esEs15(Float(x0, x1), Float(x2, x3))
new_primMulInt(Neg(x0), Neg(x1))
new_compare5(:%(x0, x1), :%(x2, x3), ty_Int)
new_esEs20(x0, x1, app(app(ty_@2, x2), x3))
new_esEs20(x0, x1, ty_Char)
new_ltEs19(x0, x1, ty_Char)
new_esEs7(Right(x0), Right(x1), x2, ty_Ordering)
new_esEs23(x0, x1, app(ty_Ratio, x2))
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_compare29(x0, x1, False)
new_esEs20(x0, x1, ty_Double)
new_ltEs6(GT, GT)
new_lt13(x0, x1, ty_Bool)
new_esEs23(x0, x1, ty_Integer)
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_compare27(Just(x0), Nothing, False, x1)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primEqInt(Pos(Zero), Pos(Succ(x0)))
new_primCmpNat0(Zero, Zero)
new_ltEs8(Just(x0), Just(x1), ty_Char)
new_esEs27(x0, x1, ty_Int)
new_ltEs6(LT, LT)
new_ltEs15(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_esEs22(x0, x1, ty_Bool)
new_primPlusNat1(Zero, Succ(x0))
new_ltEs18(x0, x1, ty_Double)
new_esEs22(x0, x1, ty_Int)
new_lt13(x0, x1, ty_Integer)
new_lt18(x0, x1, x2, x3)
new_esEs28(x0, x1, ty_Integer)
new_esEs17(Char(x0), Char(x1))
new_esEs11(x0, x1, app(ty_Maybe, x2))
new_lt20(x0, x1, ty_Char)
new_esEs20(x0, x1, app(ty_Maybe, x2))
new_esEs25(x0, x1, ty_Integer)
new_ltEs15(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_lt17(x0, x1, x2, x3)
new_esEs4(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_esEs22(x0, x1, app(ty_Ratio, x2))
new_esEs7(Right(x0), Right(x1), x2, ty_Integer)
new_ltEs15(Left(x0), Left(x1), ty_Double, x2)
new_esEs24(x0, x1, app(app(ty_@2, x2), x3))
new_esEs23(x0, x1, ty_Double)
new_esEs4(Just(x0), Just(x1), ty_Char)
new_ltEs20(x0, x1, ty_Ordering)
new_esEs7(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_lt13(x0, x1, app(app(ty_@2, x2), x3))
new_esEs12(True, False)
new_esEs12(False, True)
new_compare28(x0, x1, True)
new_sr(x0, x1)
new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_compare9(@0, @0)
new_esEs11(x0, x1, ty_Char)
new_ltEs19(x0, x1, ty_Double)
new_fsEs(x0)
new_ltEs14(True, True)
new_esEs21(x0, x1, ty_Integer)
new_lt20(x0, x1, app(ty_Maybe, x2))
new_esEs6(@2(x0, x1), @2(x2, x3), x4, x5)
new_ltEs14(False, False)
new_compare([], [], x0)
new_esEs11(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs18(x0, x1, app(ty_[], x2))
new_esEs20(x0, x1, app(ty_Ratio, x2))
new_ltEs15(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_ltEs8(Just(x0), Just(x1), app(ty_Maybe, x2))
new_esEs7(Right(x0), Right(x1), x2, ty_Bool)
new_ltEs5(x0, x1)
new_esEs25(x0, x1, ty_Int)
new_esEs11(x0, x1, ty_Ordering)
new_esEs23(x0, x1, ty_Bool)
new_esEs7(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_ltEs20(x0, x1, ty_Float)
new_primEqNat0(Zero, Succ(x0))
new_not(True)
new_esEs11(x0, x1, app(ty_[], x2))
new_lt14(x0, x1, app(app(ty_Either, x2), x3))
new_primCompAux0(x0, EQ)
new_esEs20(x0, x1, app(app(ty_Either, x2), x3))
new_compare112(x0, x1, True, x2, x3, x4)
new_ltEs15(Left(x0), Left(x1), ty_Float, x2)
new_esEs25(x0, x1, ty_Ordering)
new_ltEs20(x0, x1, ty_Integer)
new_esEs20(x0, x1, ty_Integer)
new_esEs26(x0, x1, ty_@0)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_compare111(x0, x1, True)
new_ltEs15(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_not(False)
new_esEs21(x0, x1, ty_@0)
new_ltEs6(EQ, GT)
new_ltEs6(GT, EQ)
new_lt13(x0, x1, app(ty_[], x2))
new_ltEs15(Left(x0), Left(x1), ty_Int, x2)
new_lt14(x0, x1, ty_Float)
new_ltEs20(x0, x1, ty_@0)
new_esEs23(x0, x1, ty_Int)
new_ltEs19(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs8(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_esEs10([], [], x0)
new_ltEs19(x0, x1, ty_Ordering)
new_esEs24(x0, x1, ty_Bool)
new_ltEs15(Right(x0), Right(x1), x2, ty_@0)
new_ltEs15(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_ltEs15(Right(x0), Right(x1), x2, ty_Ordering)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_compare11(x0, x1, app(app(ty_Either, x2), x3))
new_lt14(x0, x1, ty_@0)
new_ltEs8(Just(x0), Just(x1), ty_Ordering)
new_esEs7(Right(x0), Right(x1), x2, ty_Int)
new_esEs4(Just(x0), Just(x1), ty_@0)
new_esEs25(x0, x1, ty_Double)
new_lt20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs19(x0, x1, app(ty_[], x2))
new_ltEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs4(Nothing, Just(x0), x1)
new_esEs25(x0, x1, app(app(ty_Either, x2), x3))
new_compare11(x0, x1, app(ty_Maybe, x2))
new_esEs11(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare7(x0, x1)
new_esEs24(x0, x1, ty_Float)
new_esEs7(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_gt(x0, x1, x2)
new_esEs23(x0, x1, app(ty_[], x2))
new_esEs4(Just(x0), Just(x1), app(ty_Maybe, x2))
new_ltEs18(x0, x1, app(ty_Ratio, x2))
new_lt20(x0, x1, app(app(ty_Either, x2), x3))
new_esEs19(x0, x1, ty_Bool)
new_esEs25(x0, x1, ty_@0)
new_esEs7(Right(x0), Right(x1), x2, ty_Double)
new_esEs7(Right(x0), Right(x1), x2, ty_Float)
new_esEs7(Left(x0), Left(x1), ty_Integer, x2)
new_lt20(x0, x1, ty_Int)
new_sr0(Integer(x0), Integer(x1))
new_esEs20(x0, x1, ty_Ordering)
new_compare11(x0, x1, ty_Char)
new_lt20(x0, x1, app(ty_[], x2))
new_ltEs4(@2(x0, x1), @2(x2, x3), x4, x5)
new_ltEs15(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_primEqInt(Pos(Zero), Pos(Zero))
new_esEs26(x0, x1, app(ty_Ratio, x2))
new_esEs19(x0, x1, app(ty_Ratio, x2))
new_esEs22(x0, x1, ty_Ordering)
new_esEs21(x0, x1, ty_Int)
new_esEs7(Left(x0), Left(x1), ty_Int, x2)
new_esEs24(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_primCompAux0(x0, GT)
new_ltEs18(x0, x1, ty_Ordering)
new_esEs9(Integer(x0), Integer(x1))
new_esEs19(x0, x1, ty_@0)
new_esEs7(Right(x0), Right(x1), x2, ty_@0)
new_esEs22(x0, x1, ty_Float)
new_compare24(x0, x1, False, x2, x3)
new_compare10(x0, x1, True, x2, x3)
new_esEs21(x0, x1, ty_Float)
new_ltEs20(x0, x1, ty_Double)
new_primEqNat0(Succ(x0), Zero)
new_esEs22(x0, x1, ty_@0)
new_compare10(x0, x1, False, x2, x3)
new_compare11(x0, x1, ty_Float)
new_ltEs8(Just(x0), Just(x1), ty_Bool)
new_ltEs8(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_compare113(x0, x1, False)
new_compare26(x0, x1, True, x2, x3)
new_ltEs12(x0, x1)
new_ltEs19(x0, x1, ty_Float)
new_ltEs16(x0, x1)
new_ltEs15(Right(x0), Right(x1), x2, app(ty_[], x3))
new_compare11(x0, x1, ty_Bool)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))

We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_lt9(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_lt9(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), h, ba)

The TRS R consists of the following rules:

new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_esEs8(EQ, EQ) → True
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primPlusNat1(Zero, Zero) → Zero
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_sr(zzz4001, zzz3001) → new_primMulInt(zzz4001, zzz3001)
new_lt9(zzz4000, zzz33000) → new_esEs8(new_compare7(zzz4000, zzz33000), LT)
new_compare7(zzz400, zzz3300) → new_primCmpInt(zzz400, zzz3300)
new_esEs8(GT, EQ) → False
new_esEs8(EQ, GT) → False
new_primMulNat0(Zero, Zero) → Zero
new_esEs8(GT, GT) → True
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_esEs8(GT, LT) → False
new_esEs8(LT, GT) → False
new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)
new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_esEs8(LT, EQ) → False
new_esEs8(EQ, LT) → False
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_esEs8(LT, LT) → True
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_sr(x0, x1)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_compare7(x0, x1)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_lt9(x0, x1)
new_primMulNat0(Succ(x0), Succ(x1))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
QDP
                                        ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_lt9(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_lt9(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), h, ba)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)
new_sr(zzz4001, zzz3001) → new_primMulInt(zzz4001, zzz3001)
new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)
new_lt9(zzz4000, zzz33000) → new_esEs8(new_compare7(zzz4000, zzz33000), LT)
new_compare7(zzz400, zzz3300) → new_primCmpInt(zzz400, zzz3300)
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_sr(x0, x1)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_compare7(x0, x1)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_lt9(x0, x1)
new_primMulNat0(Succ(x0), Succ(x1))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_lt9(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), h, ba) at position [12] we obtained the following new rules:

new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_compare7(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
QDP
                                            ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_compare7(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_lt9(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), h, ba)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)
new_sr(zzz4001, zzz3001) → new_primMulInt(zzz4001, zzz3001)
new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)
new_lt9(zzz4000, zzz33000) → new_esEs8(new_compare7(zzz4000, zzz33000), LT)
new_compare7(zzz400, zzz3300) → new_primCmpInt(zzz400, zzz3300)
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_sr(x0, x1)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_compare7(x0, x1)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_lt9(x0, x1)
new_primMulNat0(Succ(x0), Succ(x1))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_lt9(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), h, ba) at position [12] we obtained the following new rules:

new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_compare7(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
QDP
                                                ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_compare7(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_compare7(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)
new_sr(zzz4001, zzz3001) → new_primMulInt(zzz4001, zzz3001)
new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)
new_lt9(zzz4000, zzz33000) → new_esEs8(new_compare7(zzz4000, zzz33000), LT)
new_compare7(zzz400, zzz3300) → new_primCmpInt(zzz400, zzz3300)
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_sr(x0, x1)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_compare7(x0, x1)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_lt9(x0, x1)
new_primMulNat0(Succ(x0), Succ(x1))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
QDP
                                                    ↳ QReductionProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_compare7(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_compare7(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)
new_sr(zzz4001, zzz3001) → new_primMulInt(zzz4001, zzz3001)
new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)
new_compare7(zzz400, zzz3300) → new_primCmpInt(zzz400, zzz3300)
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_sr(x0, x1)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_compare7(x0, x1)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_lt9(x0, x1)
new_primMulNat0(Succ(x0), Succ(x1))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

new_lt9(x0, x1)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
QDP
                                                        ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_compare7(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_compare7(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)
new_sr(zzz4001, zzz3001) → new_primMulInt(zzz4001, zzz3001)
new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)
new_compare7(zzz400, zzz3300) → new_primCmpInt(zzz400, zzz3300)
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_sr(x0, x1)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_compare7(x0, x1)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_compare7(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba) at position [12,0] we obtained the following new rules:

new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
QDP
                                                            ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_compare7(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)
new_sr(zzz4001, zzz3001) → new_primMulInt(zzz4001, zzz3001)
new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)
new_compare7(zzz400, zzz3300) → new_primCmpInt(zzz400, zzz3300)
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_sr(x0, x1)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_compare7(x0, x1)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_compare7(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba) at position [12,0] we obtained the following new rules:

new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
QDP
                                                                ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)
new_sr(zzz4001, zzz3001) → new_primMulInt(zzz4001, zzz3001)
new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)
new_compare7(zzz400, zzz3300) → new_primCmpInt(zzz400, zzz3300)
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_sr(x0, x1)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_compare7(x0, x1)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
QDP
                                                                    ↳ QReductionProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)
new_sr(zzz4001, zzz3001) → new_primMulInt(zzz4001, zzz3001)
new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_sr(x0, x1)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_compare7(x0, x1)
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

new_compare7(x0, x1)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
QDP
                                                                        ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)
new_sr(zzz4001, zzz3001) → new_primMulInt(zzz4001, zzz3001)
new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_sr(x0, x1)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba) at position [12,0,0] we obtained the following new rules:

new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
QDP
                                                                            ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)
new_sr(zzz4001, zzz3001) → new_primMulInt(zzz4001, zzz3001)
new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_sr(x0, x1)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba) at position [12,0,0] we obtained the following new rules:

new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
QDP
                                                                                ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)
new_sr(zzz4001, zzz3001) → new_primMulInt(zzz4001, zzz3001)
new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_sr(x0, x1)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
QDP
                                                                                    ↳ QReductionProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_sr(x0, x1)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

new_sr(x0, x1)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
QDP
                                                                                        ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba) at position [12,0,0,0] we obtained the following new rules:

new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
QDP
                                                                                            ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)
new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba) at position [12,0,0,0] we obtained the following new rules:

new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
QDP
                                                                                                ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)
new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)

The TRS R consists of the following rules:

new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
QDP
                                                                                                    ↳ QReductionProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)
new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)

The TRS R consists of the following rules:

new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_sIZE_RATIO
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

new_sIZE_RATIO



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
QDP
                                                                                                        ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)
new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)

The TRS R consists of the following rules:

new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba) at position [12,0,0,1] we obtained the following new rules:

new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
QDP
                                                                                                            ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)

The TRS R consists of the following rules:

new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba) at position [12,0,0,1] we obtained the following new rules:

new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
QDP
                                                                                                                ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)
new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)

The TRS R consists of the following rules:

new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba) at position [12,0,0,1] we obtained the following new rules:

new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3332), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
QDP
                                                                                                                    ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3332), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)

The TRS R consists of the following rules:

new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba) at position [12,0,0,1] we obtained the following new rules:

new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3442), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
QDP
                                                                                                                        ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3442), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)
new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3332), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)

The TRS R consists of the following rules:

new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3332), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba) at position [12,0,1] we obtained the following new rules:

new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3332), new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
QDP
                                                                                                                            ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3442), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)
new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3332), new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)

The TRS R consists of the following rules:

new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ UsableRulesProof
QDP
                                                                                                                                ↳ QReductionProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3442), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)
new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3332), new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)
new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ UsableRulesProof
                                                                                                                              ↳ QDP
                                                                                                                                ↳ QReductionProof
QDP
                                                                                                                                    ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3442), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)
new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3332), new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)
new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3442), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba) at position [12,0,1] we obtained the following new rules:

new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3442), new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)), LT), h, ba)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ UsableRulesProof
                                                                                                                              ↳ QDP
                                                                                                                                ↳ QReductionProof
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ Rewriting
QDP
                                                                                                                                        ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3442), new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)), LT), h, ba)
new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3332), new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)
new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba) → new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ UsableRulesProof
                                                                                                                              ↳ QDP
                                                                                                                                ↳ QReductionProof
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ Rewriting
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ UsableRulesProof
QDP
                                                                                                                                            ↳ QReductionProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3442), new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)), LT), h, ba)
new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3332), new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ UsableRulesProof
                                                                                                                              ↳ QDP
                                                                                                                                ↳ QReductionProof
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ Rewriting
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ UsableRulesProof
                                                                                                                                          ↳ QDP
                                                                                                                                            ↳ QReductionProof
QDP
                                                                                                                                                ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3442), new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)), LT), h, ba)
new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3332), new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3442), new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, h, ba)), LT), h, ba) at position [12,0,1] we obtained the following new rules:

new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3442), zzz3332), LT), h, ba)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ UsableRulesProof
                                                                                                                              ↳ QDP
                                                                                                                                ↳ QReductionProof
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ Rewriting
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ UsableRulesProof
                                                                                                                                          ↳ QDP
                                                                                                                                            ↳ QReductionProof
                                                                                                                                              ↳ QDP
                                                                                                                                                ↳ Rewriting
QDP
                                                                                                                                                    ↳ Rewriting
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3442), zzz3332), LT), h, ba)
new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3332), new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3332), new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, h, ba)), LT), h, ba) at position [12,0,1] we obtained the following new rules:

new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3332), zzz3442), LT), h, ba)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ UsableRulesProof
                                                                                                                              ↳ QDP
                                                                                                                                ↳ QReductionProof
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ Rewriting
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ UsableRulesProof
                                                                                                                                          ↳ QDP
                                                                                                                                            ↳ QReductionProof
                                                                                                                                              ↳ QDP
                                                                                                                                                ↳ Rewriting
                                                                                                                                                  ↳ QDP
                                                                                                                                                    ↳ Rewriting
QDP
                                                                                                                                                        ↳ UsableRulesProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3442), zzz3332), LT), h, ba)
new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3332), zzz3442), LT), h, ba)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, h, ba) → zzz732
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ UsableRulesProof
                                                                                                                              ↳ QDP
                                                                                                                                ↳ QReductionProof
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ Rewriting
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ UsableRulesProof
                                                                                                                                          ↳ QDP
                                                                                                                                            ↳ QReductionProof
                                                                                                                                              ↳ QDP
                                                                                                                                                ↳ Rewriting
                                                                                                                                                  ↳ QDP
                                                                                                                                                    ↳ Rewriting
                                                                                                                                                      ↳ QDP
                                                                                                                                                        ↳ UsableRulesProof
QDP
                                                                                                                                                            ↳ QReductionProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3442), zzz3332), LT), h, ba)
new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3332), zzz3442), LT), h, ba)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

new_sizeFM(x0, x1, x2, x3, x4, x5, x6)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ UsableRulesProof
                                                                                                                              ↳ QDP
                                                                                                                                ↳ QReductionProof
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ Rewriting
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ UsableRulesProof
                                                                                                                                          ↳ QDP
                                                                                                                                            ↳ QReductionProof
                                                                                                                                              ↳ QDP
                                                                                                                                                ↳ Rewriting
                                                                                                                                                  ↳ QDP
                                                                                                                                                    ↳ Rewriting
                                                                                                                                                      ↳ QDP
                                                                                                                                                        ↳ UsableRulesProof
                                                                                                                                                          ↳ QDP
                                                                                                                                                            ↳ QReductionProof
QDP
                                                                                                                                                                ↳ QDPOrderProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3442), zzz3332), LT), h, ba)
new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3332), zzz3442), LT), h, ba)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].


The following pairs can be oriented strictly and are deleted.


new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3332), zzz3442), LT), h, ba)
The remaining pairs can at least be oriented weakly.

new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3442), zzz3332), LT), h, ba)
Used ordering: Polynomial interpretation [25]:

POL(Branch(x1, x2, x3, x4, x5)) = 1 + x1 + x4 + x5   
POL(EQ) = 0   
POL(False) = 1   
POL(GT) = 0   
POL(LT) = 0   
POL(Neg(x1)) = 1 + x1   
POL(Pos(x1)) = 1   
POL(Succ(x1)) = 0   
POL(True) = 1   
POL(Zero) = 0   
POL(new_esEs8(x1, x2)) = 1   
POL(new_mkVBalBranch(x1, x2, x3, x4, x5, x6)) = x3 + x4   
POL(new_mkVBalBranch3MkVBalBranch1(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)) = 1 + x1 + x10 + x5 + x6 + x9   
POL(new_mkVBalBranch3MkVBalBranch2(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)) = x1 + x10 + x13 + x4 + x5 + x6 + x9   
POL(new_primCmpInt(x1, x2)) = 0   
POL(new_primCmpNat0(x1, x2)) = 0   
POL(new_primMulInt(x1, x2)) = 1 + x2   
POL(new_primMulNat0(x1, x2)) = 0   
POL(new_primPlusNat0(x1, x2)) = 0   
POL(new_primPlusNat1(x1, x2)) = 1   

The following usable rules [17] were oriented:

new_esEs8(GT, LT) → False
new_esEs8(LT, LT) → True
new_esEs8(EQ, LT) → False



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                    ↳ UsableRulesProof
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ UsableRulesProof
                                                  ↳ QDP
                                                    ↳ QReductionProof
                                                      ↳ QDP
                                                        ↳ Rewriting
                                                          ↳ QDP
                                                            ↳ Rewriting
                                                              ↳ QDP
                                                                ↳ UsableRulesProof
                                                                  ↳ QDP
                                                                    ↳ QReductionProof
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ Rewriting
                                                                              ↳ QDP
                                                                                ↳ UsableRulesProof
                                                                                  ↳ QDP
                                                                                    ↳ QReductionProof
                                                                                      ↳ QDP
                                                                                        ↳ Rewriting
                                                                                          ↳ QDP
                                                                                            ↳ Rewriting
                                                                                              ↳ QDP
                                                                                                ↳ UsableRulesProof
                                                                                                  ↳ QDP
                                                                                                    ↳ QReductionProof
                                                                                                      ↳ QDP
                                                                                                        ↳ Rewriting
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ Rewriting
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Rewriting
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Rewriting
                                                                                                                          ↳ QDP
                                                                                                                            ↳ UsableRulesProof
                                                                                                                              ↳ QDP
                                                                                                                                ↳ QReductionProof
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ Rewriting
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ UsableRulesProof
                                                                                                                                          ↳ QDP
                                                                                                                                            ↳ QReductionProof
                                                                                                                                              ↳ QDP
                                                                                                                                                ↳ Rewriting
                                                                                                                                                  ↳ QDP
                                                                                                                                                    ↳ Rewriting
                                                                                                                                                      ↳ QDP
                                                                                                                                                        ↳ UsableRulesProof
                                                                                                                                                          ↳ QDP
                                                                                                                                                            ↳ QReductionProof
                                                                                                                                                              ↳ QDP
                                                                                                                                                                ↳ QDPOrderProof
QDP
                                                                                                                                                                    ↳ DependencyGraphProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, h, ba) → new_mkVBalBranch(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, h, ba)
new_mkVBalBranch3MkVBalBranch2(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, h, ba) → new_mkVBalBranch3MkVBalBranch1(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_esEs8(new_primCmpInt(new_primMulInt(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz3442), zzz3332), LT), h, ba)

The TRS R consists of the following rules:

new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs8(GT, LT) → False
new_esEs8(EQ, LT) → False
new_esEs8(LT, LT) → True
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_primCmpNat0(Zero, Zero) → EQ
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_primMulNat0(Zero, Zero) → Zero
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primPlusNat1(Zero, Zero) → Zero
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)

The set Q consists of the following terms:

new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_primCmpNat0(Zero, Zero)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primCmpInt(Neg(Zero), Neg(Zero))
new_primMulNat0(Zero, Zero)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_primMulInt(Neg(x0), Neg(x1))
new_esEs8(LT, LT)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_primPlusNat1(Succ(x0), Zero)
new_primMulNat0(Zero, Succ(x0))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat1(Zero, Succ(x0))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_primPlusNat1(Succ(x0), Succ(x1))
new_primCmpNat0(Succ(x0), Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_primPlusNat1(Zero, Zero)
new_esEs8(GT, EQ)
new_esEs8(EQ, GT)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpNat0(Succ(x0), Succ(x1))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs8(GT, GT)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_primMulInt(Pos(x0), Pos(x1))

We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 0 SCCs with 3 less nodes.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_splitLT1(zzz2580, zzz2581, zzz2582, zzz2583, zzz2584, zzz260, True, h, ba) → new_splitLT(zzz2584, zzz260, h, ba)
new_splitLT2(zzz2580, zzz2581, zzz2582, Branch(zzz25830, zzz25831, zzz25832, zzz25833, zzz25834), zzz2584, zzz260, True, h, ba) → new_splitLT2(zzz25830, zzz25831, zzz25832, zzz25833, zzz25834, zzz260, new_lt15(Just(zzz260), zzz25830, h), h, ba)
new_splitLT(Branch(zzz25830, zzz25831, zzz25832, zzz25833, zzz25834), zzz260, h, ba) → new_splitLT2(zzz25830, zzz25831, zzz25832, zzz25833, zzz25834, zzz260, new_lt15(Just(zzz260), zzz25830, h), h, ba)
new_splitLT2(zzz2580, zzz2581, zzz2582, zzz2583, zzz2584, zzz260, False, h, ba) → new_splitLT1(zzz2580, zzz2581, zzz2582, zzz2583, zzz2584, zzz260, new_gt0(zzz260, zzz2580, h), h, ba)

The TRS R consists of the following rules:

new_esEs4(Just(zzz4000), Just(zzz3000), app(ty_Maybe, dbf)) → new_esEs4(zzz4000, zzz3000, dbf)
new_esEs23(zzz400001, zzz3300001, app(app(ty_Either, bfg), bfh)) → new_esEs7(zzz400001, zzz3300001, bfg, bfh)
new_ltEs19(zzz40000, zzz330000, ty_Integer) → new_ltEs16(zzz40000, zzz330000)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_esEs7(Left(zzz4000), Left(zzz3000), app(app(ty_Either, fb), fc), fa) → new_esEs7(zzz4000, zzz3000, fb, fc)
new_ltEs19(zzz40000, zzz330000, app(ty_Ratio, cdd)) → new_ltEs11(zzz40000, zzz330000, cdd)
new_esEs21(zzz4002, zzz3002, app(app(ty_@2, bea), beb)) → new_esEs6(zzz4002, zzz3002, bea, beb)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, app(ty_Maybe, dab)) → new_ltEs8(zzz400000, zzz3300000, dab)
new_lt14(zzz400000, zzz3300000, ty_Integer) → new_lt7(zzz400000, zzz3300000)
new_ltEs18(zzz400002, zzz3300002, ty_Int) → new_ltEs12(zzz400002, zzz3300002)
new_esEs24(zzz4000, zzz3000, app(app(app(ty_@3, cbd), cbe), cbf)) → new_esEs5(zzz4000, zzz3000, cbd, cbe, cbf)
new_esEs17(Char(zzz4000), Char(zzz3000)) → new_primEqNat0(zzz4000, zzz3000)
new_esEs20(zzz4001, zzz3001, ty_Bool) → new_esEs12(zzz4001, zzz3001)
new_esEs7(Left(zzz4000), Left(zzz3000), app(ty_Maybe, ff), fa) → new_esEs4(zzz4000, zzz3000, ff)
new_esEs24(zzz4000, zzz3000, ty_Char) → new_esEs17(zzz4000, zzz3000)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, ty_Float) → new_ltEs9(zzz400000, zzz3300000)
new_ltEs20(zzz400001, zzz3300001, app(ty_[], cfc)) → new_ltEs10(zzz400001, zzz3300001, cfc)
new_compare([], :(zzz3300000, zzz3300001), bf) → LT
new_compare10(zzz400000, zzz3300000, True, bd, be) → LT
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(app(app(ty_@3, bhg), bhh), caa)) → new_ltEs13(zzz400000, zzz3300000, bhg, bhh, caa)
new_lt13(zzz400001, zzz3300001, app(app(app(ty_@3, bfb), bfc), bfd)) → new_lt8(zzz400001, zzz3300001, bfb, bfc, bfd)
new_esEs24(zzz4000, zzz3000, app(ty_Maybe, cbc)) → new_esEs4(zzz4000, zzz3000, cbc)
new_esEs19(zzz4000, zzz3000, ty_Float) → new_esEs15(zzz4000, zzz3000)
new_esEs4(Nothing, Just(zzz3000), dbb) → False
new_esEs4(Just(zzz4000), Nothing, dbb) → False
new_lt20(zzz400000, zzz3300000, app(app(app(ty_@3, ced), cee), cef)) → new_lt8(zzz400000, zzz3300000, ced, cee, cef)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Char) → new_esEs17(zzz4000, zzz3000)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_@0) → new_esEs14(zzz4000, zzz3000)
new_esEs25(zzz4001, zzz3001, ty_Char) → new_esEs17(zzz4001, zzz3001)
new_ltEs20(zzz400001, zzz3300001, ty_Double) → new_ltEs7(zzz400001, zzz3300001)
new_primMulNat0(Zero, Zero) → Zero
new_esEs7(Left(zzz4000), Left(zzz3000), app(app(app(ty_@3, fg), fh), ga), fa) → new_esEs5(zzz4000, zzz3000, fg, fh, ga)
new_esEs26(zzz400000, zzz3300000, ty_Float) → new_esEs15(zzz400000, zzz3300000)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, ty_Double) → new_esEs16(zzz4000, zzz3000)
new_compare(:(zzz400000, zzz400001), [], bf) → GT
new_compare11(zzz400000, zzz3300000, ty_Int) → new_compare7(zzz400000, zzz3300000)
new_lt14(zzz400000, zzz3300000, ty_Ordering) → new_lt6(zzz400000, zzz3300000)
new_compare29(zzz400000, zzz3300000, True) → EQ
new_esEs23(zzz400001, zzz3300001, app(ty_Ratio, beh)) → new_esEs13(zzz400001, zzz3300001, beh)
new_esEs12(True, True) → True
new_ltEs18(zzz400002, zzz3300002, ty_Integer) → new_ltEs16(zzz400002, zzz3300002)
new_ltEs18(zzz400002, zzz3300002, ty_@0) → new_ltEs5(zzz400002, zzz3300002)
new_esEs20(zzz4001, zzz3001, app(ty_Maybe, bcb)) → new_esEs4(zzz4001, zzz3001, bcb)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Double, cdh) → new_ltEs7(zzz400000, zzz3300000)
new_esEs21(zzz4002, zzz3002, app(ty_[], bdh)) → new_esEs10(zzz4002, zzz3002, bdh)
new_esEs22(zzz400000, zzz3300000, ty_Char) → new_esEs17(zzz400000, zzz3300000)
new_ltEs20(zzz400001, zzz3300001, app(ty_Maybe, cfe)) → new_ltEs8(zzz400001, zzz3300001, cfe)
new_esEs23(zzz400001, zzz3300001, ty_Bool) → new_esEs12(zzz400001, zzz3300001)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_ltEs18(zzz400002, zzz3300002, ty_Char) → new_ltEs17(zzz400002, zzz3300002)
new_compare11(zzz400000, zzz3300000, app(ty_Maybe, ca)) → new_compare13(zzz400000, zzz3300000, ca)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, ty_@0) → new_ltEs5(zzz400000, zzz3300000)
new_ltEs14(False, True) → True
new_esEs24(zzz4000, zzz3000, ty_@0) → new_esEs14(zzz4000, zzz3000)
new_esEs25(zzz4001, zzz3001, ty_Double) → new_esEs16(zzz4001, zzz3001)
new_lt14(zzz400000, zzz3300000, app(app(ty_Either, hh), baa)) → new_lt18(zzz400000, zzz3300000, hh, baa)
new_esEs23(zzz400001, zzz3300001, app(ty_Maybe, bfa)) → new_esEs4(zzz400001, zzz3300001, bfa)
new_compare26(zzz400000, zzz3300000, False, hh, baa) → new_compare114(zzz400000, zzz3300000, new_ltEs15(zzz400000, zzz3300000, hh, baa), hh, baa)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, app(ty_[], he)) → new_esEs10(zzz4000, zzz3000, he)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Char, cdh) → new_ltEs17(zzz400000, zzz3300000)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, app(app(app(ty_@3, hb), hc), hd)) → new_esEs5(zzz4000, zzz3000, hb, hc, hd)
new_esEs26(zzz400000, zzz3300000, app(ty_[], cea)) → new_esEs10(zzz400000, zzz3300000, cea)
new_esEs20(zzz4001, zzz3001, app(ty_Ratio, bca)) → new_esEs13(zzz4001, zzz3001, bca)
new_esEs29(zzz400, Just(zzz3300), app(ty_Ratio, cge)) → new_esEs13(zzz400, zzz3300, cge)
new_compare11(zzz400000, zzz3300000, ty_Integer) → new_compare18(zzz400000, zzz3300000)
new_esEs22(zzz400000, zzz3300000, ty_Integer) → new_esEs9(zzz400000, zzz3300000)
new_compare15(zzz400000, zzz3300000) → new_compare29(zzz400000, zzz3300000, new_esEs12(zzz400000, zzz3300000))
new_lt13(zzz400001, zzz3300001, app(app(ty_Either, bfg), bfh)) → new_lt18(zzz400001, zzz3300001, bfg, bfh)
new_ltEs9(zzz40000, zzz330000) → new_fsEs(new_compare12(zzz40000, zzz330000))
new_ltEs20(zzz400001, zzz3300001, ty_Integer) → new_ltEs16(zzz400001, zzz3300001)
new_lt20(zzz400000, zzz3300000, app(ty_Maybe, cec)) → new_lt15(zzz400000, zzz3300000, cec)
new_lt14(zzz400000, zzz3300000, ty_Char) → new_lt12(zzz400000, zzz3300000)
new_esEs19(zzz4000, zzz3000, app(app(app(ty_@3, bba), bbb), bbc)) → new_esEs5(zzz4000, zzz3000, bba, bbb, bbc)
new_esEs19(zzz4000, zzz3000, ty_@0) → new_esEs14(zzz4000, zzz3000)
new_esEs26(zzz400000, zzz3300000, app(ty_Maybe, cec)) → new_esEs4(zzz400000, zzz3300000, cec)
new_esEs20(zzz4001, zzz3001, app(app(ty_@2, bcg), bch)) → new_esEs6(zzz4001, zzz3001, bcg, bch)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, app(app(ty_@2, daf), dag)) → new_ltEs4(zzz400000, zzz3300000, daf, dag)
new_lt13(zzz400001, zzz3300001, ty_Char) → new_lt12(zzz400001, zzz3300001)
new_esEs20(zzz4001, zzz3001, ty_@0) → new_esEs14(zzz4001, zzz3001)
new_esEs22(zzz400000, zzz3300000, app(app(ty_Either, hh), baa)) → new_esEs7(zzz400000, zzz3300000, hh, baa)
new_lt13(zzz400001, zzz3300001, app(ty_[], beg)) → new_lt4(zzz400001, zzz3300001, beg)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Ordering, cdh) → new_ltEs6(zzz400000, zzz3300000)
new_lt7(zzz400000, zzz3300000) → new_esEs8(new_compare18(zzz400000, zzz3300000), LT)
new_esEs25(zzz4001, zzz3001, app(ty_[], cda)) → new_esEs10(zzz4001, zzz3001, cda)
new_esEs28(zzz4001, zzz3001, ty_Int) → new_esEs18(zzz4001, zzz3001)
new_pePe(False, zzz214) → zzz214
new_esEs19(zzz4000, zzz3000, app(ty_[], bbd)) → new_esEs10(zzz4000, zzz3000, bbd)
new_compare27(Just(zzz40000), Just(zzz330000), False, bah) → new_compare110(zzz40000, zzz330000, new_ltEs19(zzz40000, zzz330000, bah), bah)
new_esEs7(Left(zzz4000), Left(zzz3000), app(ty_[], gb), fa) → new_esEs10(zzz4000, zzz3000, gb)
new_esEs7(Left(zzz4000), Right(zzz3000), ge, fa) → False
new_esEs7(Right(zzz4000), Left(zzz3000), ge, fa) → False
new_esEs27(zzz4000, zzz3000, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_compare11(zzz400000, zzz3300000, app(ty_[], bg)) → new_compare(zzz400000, zzz3300000, bg)
new_lt20(zzz400000, zzz3300000, ty_Bool) → new_lt11(zzz400000, zzz3300000)
new_lt15(zzz4000, zzz33000, bah) → new_esEs8(new_compare13(zzz4000, zzz33000, bah), LT)
new_lt9(zzz4000, zzz33000) → new_esEs8(new_compare7(zzz4000, zzz33000), LT)
new_esEs20(zzz4001, zzz3001, ty_Double) → new_esEs16(zzz4001, zzz3001)
new_ltEs19(zzz40000, zzz330000, app(app(ty_@2, cde), cdf)) → new_ltEs4(zzz40000, zzz330000, cde, cdf)
new_lt4(zzz400000, zzz3300000, bb) → new_esEs8(new_compare(zzz400000, zzz3300000, bb), LT)
new_esEs11(zzz4000, zzz3000, ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_lt20(zzz400000, zzz3300000, ty_Float) → new_lt10(zzz400000, zzz3300000)
new_lt6(zzz400000, zzz3300000) → new_esEs8(new_compare8(zzz400000, zzz3300000), LT)
new_ltEs10(zzz40000, zzz330000, bf) → new_fsEs(new_compare(zzz40000, zzz330000, bf))
new_esEs26(zzz400000, zzz3300000, ty_Bool) → new_esEs12(zzz400000, zzz3300000)
new_lt20(zzz400000, zzz3300000, app(app(ty_@2, ceg), ceh)) → new_lt17(zzz400000, zzz3300000, ceg, ceh)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_ltEs6(GT, EQ) → False
new_esEs22(zzz400000, zzz3300000, ty_Ordering) → new_esEs8(zzz400000, zzz3300000)
new_esEs19(zzz4000, zzz3000, app(app(ty_Either, bae), baf)) → new_esEs7(zzz4000, zzz3000, bae, baf)
new_esEs21(zzz4002, zzz3002, ty_Int) → new_esEs18(zzz4002, zzz3002)
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_compare111(zzz400000, zzz3300000, False) → GT
new_esEs18(zzz400, zzz300) → new_primEqInt(zzz400, zzz300)
new_compare111(zzz400000, zzz3300000, True) → LT
new_ltEs20(zzz400001, zzz3300001, app(app(ty_@2, cga), cgb)) → new_ltEs4(zzz400001, zzz3300001, cga, cgb)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_esEs29(zzz400, Just(zzz3300), ty_Char) → new_esEs17(zzz400, zzz3300)
new_esEs22(zzz400000, zzz3300000, ty_Float) → new_esEs15(zzz400000, zzz3300000)
new_ltEs11(zzz40000, zzz330000, cdd) → new_fsEs(new_compare5(zzz40000, zzz330000, cdd))
new_ltEs8(Nothing, Just(zzz3300000), bhc) → True
new_ltEs20(zzz400001, zzz3300001, ty_Bool) → new_ltEs14(zzz400001, zzz3300001)
new_compare27(Nothing, Just(zzz330000), False, bah) → LT
new_lt20(zzz400000, zzz3300000, ty_Ordering) → new_lt6(zzz400000, zzz3300000)
new_esEs25(zzz4001, zzz3001, app(app(ty_@2, cdb), cdc)) → new_esEs6(zzz4001, zzz3001, cdb, cdc)
new_esEs8(LT, LT) → True
new_ltEs4(@2(zzz400000, zzz400001), @2(zzz3300000, zzz3300001), cde, cdf) → new_pePe(new_lt20(zzz400000, zzz3300000, cde), new_asAs(new_esEs26(zzz400000, zzz3300000, cde), new_ltEs20(zzz400001, zzz3300001, cdf)))
new_compare25(zzz400000, zzz3300000, True, db, dc, dd) → EQ
new_esEs19(zzz4000, zzz3000, app(ty_Maybe, bah)) → new_esEs4(zzz4000, zzz3000, bah)
new_esEs21(zzz4002, zzz3002, app(ty_Ratio, bdc)) → new_esEs13(zzz4002, zzz3002, bdc)
new_lt13(zzz400001, zzz3300001, ty_Int) → new_lt9(zzz400001, zzz3300001)
new_compare17(zzz400000, zzz3300000, hh, baa) → new_compare26(zzz400000, zzz3300000, new_esEs7(zzz400000, zzz3300000, hh, baa), hh, baa)
new_esEs19(zzz4000, zzz3000, ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_esEs25(zzz4001, zzz3001, ty_Ordering) → new_esEs8(zzz4001, zzz3001)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Int) → new_ltEs12(zzz400000, zzz3300000)
new_esEs25(zzz4001, zzz3001, app(ty_Ratio, ccd)) → new_esEs13(zzz4001, zzz3001, ccd)
new_esEs24(zzz4000, zzz3000, app(app(ty_Either, cah), cba)) → new_esEs7(zzz4000, zzz3000, cah, cba)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Double) → new_ltEs7(zzz400000, zzz3300000)
new_lt14(zzz400000, zzz3300000, ty_@0) → new_lt16(zzz400000, zzz3300000)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, ty_Float) → new_esEs15(zzz4000, zzz3000)
new_esEs24(zzz4000, zzz3000, app(app(ty_@2, cbh), cca)) → new_esEs6(zzz4000, zzz3000, cbh, cca)
new_esEs22(zzz400000, zzz3300000, ty_Int) → new_esEs18(zzz400000, zzz3300000)
new_pePe(True, zzz214) → True
new_primEqNat0(Zero, Zero) → True
new_esEs26(zzz400000, zzz3300000, ty_Char) → new_esEs17(zzz400000, zzz3300000)
new_esEs19(zzz4000, zzz3000, app(ty_Ratio, bag)) → new_esEs13(zzz4000, zzz3000, bag)
new_esEs14(@0, @0) → True
new_esEs23(zzz400001, zzz3300001, ty_Integer) → new_esEs9(zzz400001, zzz3300001)
new_esEs26(zzz400000, zzz3300000, app(ty_Ratio, ceb)) → new_esEs13(zzz400000, zzz3300000, ceb)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Bool) → new_ltEs14(zzz400000, zzz3300000)
new_ltEs19(zzz40000, zzz330000, ty_@0) → new_ltEs5(zzz40000, zzz330000)
new_lt20(zzz400000, zzz3300000, ty_Integer) → new_lt7(zzz400000, zzz3300000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(ty_[], cgf), cdh) → new_ltEs10(zzz400000, zzz3300000, cgf)
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Ordering, fa) → new_esEs8(zzz4000, zzz3000)
new_lt13(zzz400001, zzz3300001, ty_Float) → new_lt10(zzz400001, zzz3300001)
new_compare(:(zzz400000, zzz400001), :(zzz3300000, zzz3300001), bf) → new_primCompAux1(zzz400000, zzz3300000, new_compare(zzz400001, zzz3300001, bf), bf)
new_ltEs19(zzz40000, zzz330000, ty_Ordering) → new_ltEs6(zzz40000, zzz330000)
new_sr(zzz4001, zzz3001) → new_primMulInt(zzz4001, zzz3001)
new_esEs4(Just(zzz4000), Just(zzz3000), app(ty_[], dcb)) → new_esEs10(zzz4000, zzz3000, dcb)
new_compare7(zzz400, zzz3300) → new_primCmpInt(zzz400, zzz3300)
new_esEs29(zzz400, Just(zzz3300), app(ty_Maybe, dbb)) → new_esEs4(zzz400, zzz3300, dbb)
new_esEs24(zzz4000, zzz3000, ty_Double) → new_esEs16(zzz4000, zzz3000)
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(app(ty_Either, cad), cae)) → new_ltEs15(zzz400000, zzz3300000, cad, cae)
new_compare12(Float(zzz400000, zzz400001), Float(zzz3300000, zzz3300001)) → new_compare7(new_sr(zzz400000, zzz3300000), new_sr(zzz400001, zzz3300001))
new_esEs26(zzz400000, zzz3300000, ty_Ordering) → new_esEs8(zzz400000, zzz3300000)
new_ltEs6(EQ, GT) → True
new_esEs8(GT, GT) → True
new_ltEs20(zzz400001, zzz3300001, app(ty_Ratio, cfd)) → new_ltEs11(zzz400001, zzz3300001, cfd)
new_esEs20(zzz4001, zzz3001, ty_Integer) → new_esEs9(zzz4001, zzz3001)
new_esEs21(zzz4002, zzz3002, ty_Double) → new_esEs16(zzz4002, zzz3002)
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_ltEs18(zzz400002, zzz3300002, ty_Ordering) → new_ltEs6(zzz400002, zzz3300002)
new_esEs11(zzz4000, zzz3000, ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, app(app(ty_Either, gf), gg)) → new_esEs7(zzz4000, zzz3000, gf, gg)
new_esEs12(False, False) → True
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(ty_[], bhd)) → new_ltEs10(zzz400000, zzz3300000, bhd)
new_esEs8(GT, LT) → False
new_esEs8(LT, GT) → False
new_ltEs18(zzz400002, zzz3300002, ty_Double) → new_ltEs7(zzz400002, zzz3300002)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_@0, cdh) → new_ltEs5(zzz400000, zzz3300000)
new_primEqInt(Neg(Succ(zzz40000)), Neg(Succ(zzz30000))) → new_primEqNat0(zzz40000, zzz30000)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, ty_Char) → new_esEs17(zzz4000, zzz3000)
new_lt14(zzz400000, zzz3300000, app(ty_[], bb)) → new_lt4(zzz400000, zzz3300000, bb)
new_esEs20(zzz4001, zzz3001, ty_Ordering) → new_esEs8(zzz4001, zzz3001)
new_esEs23(zzz400001, zzz3300001, ty_Ordering) → new_esEs8(zzz400001, zzz3300001)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_compare27(Just(zzz40000), Nothing, False, bah) → GT
new_primCompAux1(zzz400000, zzz3300000, zzz215, bf) → new_primCompAux0(zzz215, new_compare11(zzz400000, zzz3300000, bf))
new_lt14(zzz400000, zzz3300000, app(ty_Ratio, bc)) → new_lt5(zzz400000, zzz3300000, bc)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, app(app(app(ty_@3, dac), dad), dae)) → new_ltEs13(zzz400000, zzz3300000, dac, dad, dae)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, app(ty_Ratio, gh)) → new_esEs13(zzz4000, zzz3000, gh)
new_ltEs19(zzz40000, zzz330000, ty_Float) → new_ltEs9(zzz40000, zzz330000)
new_compare27(Nothing, Nothing, False, bah) → LT
new_esEs25(zzz4001, zzz3001, ty_Int) → new_esEs18(zzz4001, zzz3001)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Char) → new_ltEs17(zzz400000, zzz3300000)
new_primEqInt(Neg(Zero), Neg(Zero)) → True
new_esEs7(Left(zzz4000), Left(zzz3000), app(ty_Ratio, fd), fa) → new_esEs13(zzz4000, zzz3000, fd)
new_esEs7(Left(zzz4000), Left(zzz3000), app(app(ty_@2, gc), gd), fa) → new_esEs6(zzz4000, zzz3000, gc, gd)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, ty_Double) → new_ltEs7(zzz400000, zzz3300000)
new_ltEs6(EQ, EQ) → True
new_esEs11(zzz4000, zzz3000, app(app(app(ty_@3, ec), ed), ee)) → new_esEs5(zzz4000, zzz3000, ec, ed, ee)
new_esEs29(zzz400, Just(zzz3300), app(app(ty_@2, caf), cag)) → new_esEs6(zzz400, zzz3300, caf, cag)
new_esEs11(zzz4000, zzz3000, ty_Float) → new_esEs15(zzz4000, zzz3000)
new_primEqInt(Neg(Zero), Neg(Succ(zzz30000))) → False
new_primEqInt(Neg(Succ(zzz40000)), Neg(Zero)) → False
new_primCompAux0(zzz220, GT) → GT
new_ltEs17(zzz40000, zzz330000) → new_fsEs(new_compare19(zzz40000, zzz330000))
new_esEs8(EQ, EQ) → True
new_compare26(zzz400000, zzz3300000, True, hh, baa) → EQ
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Bool, cdh) → new_ltEs14(zzz400000, zzz3300000)
new_ltEs6(GT, GT) → True
new_esEs24(zzz4000, zzz3000, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_compare24(zzz400000, zzz3300000, True, bd, be) → EQ
new_ltEs13(@3(zzz400000, zzz400001, zzz400002), @3(zzz3300000, zzz3300001, zzz3300002), bec, bed, bee) → new_pePe(new_lt14(zzz400000, zzz3300000, bec), new_asAs(new_esEs22(zzz400000, zzz3300000, bec), new_pePe(new_lt13(zzz400001, zzz3300001, bed), new_asAs(new_esEs23(zzz400001, zzz3300001, bed), new_ltEs18(zzz400002, zzz3300002, bee)))))
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(ty_Maybe, cgh), cdh) → new_ltEs8(zzz400000, zzz3300000, cgh)
new_ltEs19(zzz40000, zzz330000, ty_Char) → new_ltEs17(zzz40000, zzz330000)
new_esEs22(zzz400000, zzz3300000, app(app(app(ty_@3, db), dc), dd)) → new_esEs5(zzz400000, zzz3300000, db, dc, dd)
new_compare([], [], bf) → EQ
new_compare11(zzz400000, zzz3300000, app(app(ty_@2, ce), cf)) → new_compare16(zzz400000, zzz3300000, ce, cf)
new_esEs26(zzz400000, zzz3300000, app(app(ty_Either, cfa), cfb)) → new_esEs7(zzz400000, zzz3300000, cfa, cfb)
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_esEs10([], :(zzz3000, zzz3001), df) → False
new_esEs10(:(zzz4000, zzz4001), [], df) → False
new_ltEs19(zzz40000, zzz330000, ty_Double) → new_ltEs7(zzz40000, zzz330000)
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_esEs4(Just(zzz4000), Just(zzz3000), app(app(ty_Either, dbc), dbd)) → new_esEs7(zzz4000, zzz3000, dbc, dbd)
new_esEs9(Integer(zzz4000), Integer(zzz3000)) → new_primEqInt(zzz4000, zzz3000)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, app(app(ty_@2, hf), hg)) → new_esEs6(zzz4000, zzz3000, hf, hg)
new_esEs22(zzz400000, zzz3300000, app(ty_Maybe, bef)) → new_esEs4(zzz400000, zzz3300000, bef)
new_esEs25(zzz4001, zzz3001, app(ty_Maybe, cce)) → new_esEs4(zzz4001, zzz3001, cce)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Int) → new_esEs18(zzz4000, zzz3000)
new_esEs29(zzz400, Just(zzz3300), app(ty_[], df)) → new_esEs10(zzz400, zzz3300, df)
new_primEqInt(Pos(Succ(zzz40000)), Pos(Succ(zzz30000))) → new_primEqNat0(zzz40000, zzz30000)
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(ty_Ratio, bhe)) → new_ltEs11(zzz400000, zzz3300000, bhe)
new_compare10(zzz400000, zzz3300000, False, bd, be) → GT
new_esEs6(@2(zzz4000, zzz4001), @2(zzz3000, zzz3001), caf, cag) → new_asAs(new_esEs24(zzz4000, zzz3000, caf), new_esEs25(zzz4001, zzz3001, cag))
new_compare11(zzz400000, zzz3300000, app(ty_Ratio, bh)) → new_compare5(zzz400000, zzz3300000, bh)
new_ltEs19(zzz40000, zzz330000, ty_Bool) → new_ltEs14(zzz40000, zzz330000)
new_ltEs18(zzz400002, zzz3300002, app(app(ty_Either, bha), bhb)) → new_ltEs15(zzz400002, zzz3300002, bha, bhb)
new_esEs23(zzz400001, zzz3300001, ty_Char) → new_esEs17(zzz400001, zzz3300001)
new_esEs10([], [], df) → True
new_esEs24(zzz4000, zzz3000, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_lt14(zzz400000, zzz3300000, ty_Double) → new_lt19(zzz400000, zzz3300000)
new_primEqNat0(Succ(zzz40000), Succ(zzz30000)) → new_primEqNat0(zzz40000, zzz30000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Int, cdh) → new_ltEs12(zzz400000, zzz3300000)
new_ltEs14(False, False) → True
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Integer, fa) → new_esEs9(zzz4000, zzz3000)
new_esEs19(zzz4000, zzz3000, app(app(ty_@2, bbe), bbf)) → new_esEs6(zzz4000, zzz3000, bbe, bbf)
new_esEs29(zzz400, Nothing, dce) → False
new_esEs4(Just(zzz4000), Just(zzz3000), app(app(app(ty_@3, dbg), dbh), dca)) → new_esEs5(zzz4000, zzz3000, dbg, dbh, dca)
new_compare6(Double(zzz400000, zzz400001), Double(zzz3300000, zzz3300001)) → new_compare7(new_sr(zzz400000, zzz3300000), new_sr(zzz400001, zzz3300001))
new_esEs22(zzz400000, zzz3300000, ty_Bool) → new_esEs12(zzz400000, zzz3300000)
new_lt11(zzz400000, zzz3300000) → new_esEs8(new_compare15(zzz400000, zzz3300000), LT)
new_compare114(zzz400000, zzz3300000, True, hh, baa) → LT
new_esEs24(zzz4000, zzz3000, ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_ltEs8(Just(zzz400000), Nothing, bhc) → False
new_esEs20(zzz4001, zzz3001, ty_Float) → new_esEs15(zzz4001, zzz3001)
new_compare5(:%(zzz400000, zzz400001), :%(zzz3300000, zzz3300001), ty_Integer) → new_compare18(new_sr0(zzz400000, zzz3300001), new_sr0(zzz3300000, zzz400001))
new_esEs11(zzz4000, zzz3000, app(ty_Maybe, eb)) → new_esEs4(zzz4000, zzz3000, eb)
new_compare24(zzz400000, zzz3300000, False, bd, be) → new_compare10(zzz400000, zzz3300000, new_ltEs4(zzz400000, zzz3300000, bd, be), bd, be)
new_compare19(Char(zzz400000), Char(zzz3300000)) → new_primCmpNat0(zzz400000, zzz3300000)
new_lt20(zzz400000, zzz3300000, app(ty_Ratio, ceb)) → new_lt5(zzz400000, zzz3300000, ceb)
new_esEs8(EQ, LT) → False
new_esEs8(LT, EQ) → False
new_primEqInt(Pos(Zero), Pos(Succ(zzz30000))) → False
new_primEqInt(Pos(Succ(zzz40000)), Pos(Zero)) → False
new_esEs24(zzz4000, zzz3000, ty_Float) → new_esEs15(zzz4000, zzz3000)
new_primCmpNat0(Zero, Zero) → EQ
new_lt14(zzz400000, zzz3300000, app(app(app(ty_@3, db), dc), dd)) → new_lt8(zzz400000, zzz3300000, db, dc, dd)
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_esEs19(zzz4000, zzz3000, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_compare11(zzz400000, zzz3300000, ty_Char) → new_compare19(zzz400000, zzz3300000)
new_esEs29(zzz400, Just(zzz3300), ty_Double) → new_esEs16(zzz400, zzz3300)
new_lt12(zzz400000, zzz3300000) → new_esEs8(new_compare19(zzz400000, zzz3300000), LT)
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_esEs29(zzz400, Just(zzz3300), ty_Bool) → new_esEs12(zzz400, zzz3300)
new_compare9(@0, @0) → EQ
new_esEs21(zzz4002, zzz3002, ty_Float) → new_esEs15(zzz4002, zzz3002)
new_esEs22(zzz400000, zzz3300000, app(ty_Ratio, bc)) → new_esEs13(zzz400000, zzz3300000, bc)
new_esEs27(zzz4000, zzz3000, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_sr0(Integer(zzz33000000), Integer(zzz4000010)) → Integer(new_primMulInt(zzz33000000, zzz4000010))
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primEqInt(Neg(Succ(zzz40000)), Pos(zzz3000)) → False
new_primEqInt(Pos(Succ(zzz40000)), Neg(zzz3000)) → False
new_esEs24(zzz4000, zzz3000, app(ty_Ratio, cbb)) → new_esEs13(zzz4000, zzz3000, cbb)
new_esEs4(Just(zzz4000), Just(zzz3000), app(app(ty_@2, dcc), dcd)) → new_esEs6(zzz4000, zzz3000, dcc, dcd)
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Float, fa) → new_esEs15(zzz4000, zzz3000)
new_compare18(Integer(zzz400000), Integer(zzz3300000)) → new_primCmpInt(zzz400000, zzz3300000)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Ordering) → new_ltEs6(zzz400000, zzz3300000)
new_esEs22(zzz400000, zzz3300000, app(app(ty_@2, bd), be)) → new_esEs6(zzz400000, zzz3300000, bd, be)
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primEqInt(Neg(Zero), Pos(Succ(zzz30000))) → False
new_primEqInt(Pos(Zero), Neg(Succ(zzz30000))) → False
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Float) → new_ltEs9(zzz400000, zzz3300000)
new_lt8(zzz400000, zzz3300000, db, dc, dd) → new_esEs8(new_compare14(zzz400000, zzz3300000, db, dc, dd), LT)
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_ltEs18(zzz400002, zzz3300002, app(ty_Ratio, bgb)) → new_ltEs11(zzz400002, zzz3300002, bgb)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, app(ty_Maybe, ha)) → new_esEs4(zzz4000, zzz3000, ha)
new_esEs25(zzz4001, zzz3001, ty_@0) → new_esEs14(zzz4001, zzz3001)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, ty_Char) → new_ltEs17(zzz400000, zzz3300000)
new_compare11(zzz400000, zzz3300000, app(app(app(ty_@3, cb), cc), cd)) → new_compare14(zzz400000, zzz3300000, cb, cc, cd)
new_esEs23(zzz400001, zzz3300001, ty_Int) → new_esEs18(zzz400001, zzz3300001)
new_ltEs5(zzz40000, zzz330000) → new_fsEs(new_compare9(zzz40000, zzz330000))
new_esEs25(zzz4001, zzz3001, ty_Float) → new_esEs15(zzz4001, zzz3001)
new_esEs8(GT, EQ) → False
new_esEs8(EQ, GT) → False
new_compare13(zzz4000, zzz33000, bah) → new_compare27(zzz4000, zzz33000, new_esEs4(zzz4000, zzz33000, bah), bah)
new_esEs16(Double(zzz4000, zzz4001), Double(zzz3000, zzz3001)) → new_esEs18(new_sr(zzz4000, zzz3000), new_sr(zzz4001, zzz3001))
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Float) → new_esEs15(zzz4000, zzz3000)
new_ltEs19(zzz40000, zzz330000, app(app(app(ty_@3, bec), bed), bee)) → new_ltEs13(zzz40000, zzz330000, bec, bed, bee)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_lt20(zzz400000, zzz3300000, ty_@0) → new_lt16(zzz400000, zzz3300000)
new_esEs10(:(zzz4000, zzz4001), :(zzz3000, zzz3001), df) → new_asAs(new_esEs11(zzz4000, zzz3000, df), new_esEs10(zzz4001, zzz3001, df))
new_primCompAux0(zzz220, LT) → LT
new_esEs7(Right(zzz4000), Right(zzz3000), ge, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_@0) → new_ltEs5(zzz400000, zzz3300000)
new_lt13(zzz400001, zzz3300001, ty_Bool) → new_lt11(zzz400001, zzz3300001)
new_compare16(zzz400000, zzz3300000, bd, be) → new_compare24(zzz400000, zzz3300000, new_esEs6(zzz400000, zzz3300000, bd, be), bd, be)
new_compare11(zzz400000, zzz3300000, ty_Double) → new_compare6(zzz400000, zzz3300000)
new_compare113(zzz400000, zzz3300000, True) → LT
new_compare114(zzz400000, zzz3300000, False, hh, baa) → GT
new_not(False) → True
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Int, fa) → new_esEs18(zzz4000, zzz3000)
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_compare110(zzz195, zzz196, True, de) → LT
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Double, fa) → new_esEs16(zzz4000, zzz3000)
new_lt16(zzz400000, zzz3300000) → new_esEs8(new_compare9(zzz400000, zzz3300000), LT)
new_ltEs19(zzz40000, zzz330000, app(ty_[], bf)) → new_ltEs10(zzz40000, zzz330000, bf)
new_lt13(zzz400001, zzz3300001, ty_Integer) → new_lt7(zzz400001, zzz3300001)
new_esEs23(zzz400001, zzz3300001, app(app(ty_@2, bfe), bff)) → new_esEs6(zzz400001, zzz3300001, bfe, bff)
new_esEs19(zzz4000, zzz3000, ty_Char) → new_esEs17(zzz4000, zzz3000)
new_compare113(zzz400000, zzz3300000, False) → GT
new_esEs7(Right(zzz4000), Right(zzz3000), ge, ty_@0) → new_esEs14(zzz4000, zzz3000)
new_esEs26(zzz400000, zzz3300000, ty_Int) → new_esEs18(zzz400000, zzz3300000)
new_esEs11(zzz4000, zzz3000, ty_Double) → new_esEs16(zzz4000, zzz3000)
new_esEs11(zzz4000, zzz3000, ty_@0) → new_esEs14(zzz4000, zzz3000)
new_lt13(zzz400001, zzz3300001, app(ty_Ratio, beh)) → new_lt5(zzz400001, zzz3300001, beh)
new_esEs23(zzz400001, zzz3300001, app(ty_[], beg)) → new_esEs10(zzz400001, zzz3300001, beg)
new_ltEs19(zzz40000, zzz330000, app(app(ty_Either, cdg), cdh)) → new_ltEs15(zzz40000, zzz330000, cdg, cdh)
new_esEs19(zzz4000, zzz3000, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_compare28(zzz400000, zzz3300000, True) → EQ
new_lt13(zzz400001, zzz3300001, app(app(ty_@2, bfe), bff)) → new_lt17(zzz400001, zzz3300001, bfe, bff)
new_esEs20(zzz4001, zzz3001, ty_Int) → new_esEs18(zzz4001, zzz3001)
new_esEs20(zzz4001, zzz3001, app(app(app(ty_@3, bcc), bcd), bce)) → new_esEs5(zzz4001, zzz3001, bcc, bcd, bce)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_esEs21(zzz4002, zzz3002, app(app(app(ty_@3, bde), bdf), bdg)) → new_esEs5(zzz4002, zzz3002, bde, bdf, bdg)
new_lt14(zzz400000, zzz3300000, ty_Int) → new_lt9(zzz400000, zzz3300000)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_ltEs18(zzz400002, zzz3300002, ty_Float) → new_ltEs9(zzz400002, zzz3300002)
new_esEs5(@3(zzz4000, zzz4001, zzz4002), @3(zzz3000, zzz3001, zzz3002), bab, bac, bad) → new_asAs(new_esEs19(zzz4000, zzz3000, bab), new_asAs(new_esEs20(zzz4001, zzz3001, bac), new_esEs21(zzz4002, zzz3002, bad)))
new_esEs7(Left(zzz4000), Left(zzz3000), ty_@0, fa) → new_esEs14(zzz4000, zzz3000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(app(app(ty_@3, cha), chb), chc), cdh) → new_ltEs13(zzz400000, zzz3300000, cha, chb, chc)
new_ltEs19(zzz40000, zzz330000, app(ty_Maybe, bhc)) → new_ltEs8(zzz40000, zzz330000, bhc)
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primEqNat0(Succ(zzz40000), Zero) → False
new_primEqNat0(Zero, Succ(zzz30000)) → False
new_ltEs19(zzz40000, zzz330000, ty_Int) → new_ltEs12(zzz40000, zzz330000)
new_ltEs6(LT, LT) → True
new_lt20(zzz400000, zzz3300000, app(app(ty_Either, cfa), cfb)) → new_lt18(zzz400000, zzz3300000, cfa, cfb)
new_ltEs6(EQ, LT) → False
new_esEs20(zzz4001, zzz3001, app(ty_[], bcf)) → new_esEs10(zzz4001, zzz3001, bcf)
new_ltEs14(True, True) → True
new_primEqInt(Pos(Zero), Pos(Zero)) → True
new_ltEs12(zzz40000, zzz330000) → new_fsEs(new_compare7(zzz40000, zzz330000))
new_esEs4(Nothing, Nothing, dbb) → True
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Char, fa) → new_esEs17(zzz4000, zzz3000)
new_esEs4(Just(zzz4000), Just(zzz3000), app(ty_Ratio, dbe)) → new_esEs13(zzz4000, zzz3000, dbe)
new_esEs11(zzz4000, zzz3000, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_lt14(zzz400000, zzz3300000, ty_Bool) → new_lt11(zzz400000, zzz3300000)
new_lt18(zzz400000, zzz3300000, hh, baa) → new_esEs8(new_compare17(zzz400000, zzz3300000, hh, baa), LT)
new_esEs21(zzz4002, zzz3002, app(app(ty_Either, bda), bdb)) → new_esEs7(zzz4002, zzz3002, bda, bdb)
new_ltEs18(zzz400002, zzz3300002, app(app(app(ty_@3, bgd), bge), bgf)) → new_ltEs13(zzz400002, zzz3300002, bgd, bge, bgf)
new_lt13(zzz400001, zzz3300001, app(ty_Maybe, bfa)) → new_lt15(zzz400001, zzz3300001, bfa)
new_lt13(zzz400001, zzz3300001, ty_Double) → new_lt19(zzz400001, zzz3300001)
new_ltEs20(zzz400001, zzz3300001, ty_@0) → new_ltEs5(zzz400001, zzz3300001)
new_compare112(zzz400000, zzz3300000, True, db, dc, dd) → LT
new_esEs21(zzz4002, zzz3002, ty_Char) → new_esEs17(zzz4002, zzz3002)
new_lt10(zzz400000, zzz3300000) → new_esEs8(new_compare12(zzz400000, zzz3300000), LT)
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_compare110(zzz195, zzz196, False, de) → GT
new_ltEs20(zzz400001, zzz3300001, ty_Int) → new_ltEs12(zzz400001, zzz3300001)
new_lt14(zzz400000, zzz3300000, app(app(ty_@2, bd), be)) → new_lt17(zzz400000, zzz3300000, bd, be)
new_ltEs20(zzz400001, zzz3300001, app(app(app(ty_@3, cff), cfg), cfh)) → new_ltEs13(zzz400001, zzz3300001, cff, cfg, cfh)
new_esEs26(zzz400000, zzz3300000, ty_@0) → new_esEs14(zzz400000, zzz3300000)
new_esEs11(zzz4000, zzz3000, app(app(ty_Either, dg), dh)) → new_esEs7(zzz4000, zzz3000, dg, dh)
new_lt14(zzz400000, zzz3300000, app(ty_Maybe, bef)) → new_lt15(zzz400000, zzz3300000, bef)
new_ltEs18(zzz400002, zzz3300002, app(ty_[], bga)) → new_ltEs10(zzz400002, zzz3300002, bga)
new_esEs24(zzz4000, zzz3000, app(ty_[], cbg)) → new_esEs10(zzz4000, zzz3000, cbg)
new_esEs21(zzz4002, zzz3002, app(ty_Maybe, bdd)) → new_esEs4(zzz4002, zzz3002, bdd)
new_compare11(zzz400000, zzz3300000, ty_@0) → new_compare9(zzz400000, zzz3300000)
new_esEs20(zzz4001, zzz3001, app(app(ty_Either, bbg), bbh)) → new_esEs7(zzz4001, zzz3001, bbg, bbh)
new_ltEs20(zzz400001, zzz3300001, app(app(ty_Either, cgc), cgd)) → new_ltEs15(zzz400001, zzz3300001, cgc, cgd)
new_esEs23(zzz400001, zzz3300001, ty_@0) → new_esEs14(zzz400001, zzz3300001)
new_esEs11(zzz4000, zzz3000, app(app(ty_@2, eg), eh)) → new_esEs6(zzz4000, zzz3000, eg, eh)
new_esEs28(zzz4001, zzz3001, ty_Integer) → new_esEs9(zzz4001, zzz3001)
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs25(zzz4001, zzz3001, ty_Bool) → new_esEs12(zzz4001, zzz3001)
new_esEs21(zzz4002, zzz3002, ty_@0) → new_esEs14(zzz4002, zzz3002)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, app(ty_[], chh)) → new_ltEs10(zzz400000, zzz3300000, chh)
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(ty_Maybe, bhf)) → new_ltEs8(zzz400000, zzz3300000, bhf)
new_esEs19(zzz4000, zzz3000, ty_Double) → new_esEs16(zzz4000, zzz3000)
new_esEs29(zzz400, Just(zzz3300), app(app(app(ty_@3, bab), bac), bad)) → new_esEs5(zzz400, zzz3300, bab, bac, bad)
new_esEs13(:%(zzz4000, zzz4001), :%(zzz3000, zzz3001), cge) → new_asAs(new_esEs27(zzz4000, zzz3000, cge), new_esEs28(zzz4001, zzz3001, cge))
new_lt14(zzz400000, zzz3300000, ty_Float) → new_lt10(zzz400000, zzz3300000)
new_asAs(False, zzz202) → False
new_esEs29(zzz400, Just(zzz3300), ty_Float) → new_esEs15(zzz400, zzz3300)
new_lt20(zzz400000, zzz3300000, ty_Double) → new_lt19(zzz400000, zzz3300000)
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, ty_Ordering) → new_ltEs6(zzz400000, zzz3300000)
new_compare14(zzz400000, zzz3300000, db, dc, dd) → new_compare25(zzz400000, zzz3300000, new_esEs5(zzz400000, zzz3300000, db, dc, dd), db, dc, dd)
new_esEs21(zzz4002, zzz3002, ty_Ordering) → new_esEs8(zzz4002, zzz3002)
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(app(ty_@2, cab), cac)) → new_ltEs4(zzz400000, zzz3300000, cab, cac)
new_compare11(zzz400000, zzz3300000, ty_Bool) → new_compare15(zzz400000, zzz3300000)
new_esEs22(zzz400000, zzz3300000, app(ty_[], bb)) → new_esEs10(zzz400000, zzz3300000, bb)
new_ltEs16(zzz40000, zzz330000) → new_fsEs(new_compare18(zzz40000, zzz330000))
new_esEs29(zzz400, Just(zzz3300), app(app(ty_Either, ge), fa)) → new_esEs7(zzz400, zzz3300, ge, fa)
new_lt20(zzz400000, zzz3300000, app(ty_[], cea)) → new_lt4(zzz400000, zzz3300000, cea)
new_lt19(zzz400000, zzz3300000) → new_esEs8(new_compare6(zzz400000, zzz3300000), LT)
new_esEs23(zzz400001, zzz3300001, ty_Float) → new_esEs15(zzz400001, zzz3300001)
new_ltEs18(zzz400002, zzz3300002, ty_Bool) → new_ltEs14(zzz400002, zzz3300002)
new_esEs21(zzz4002, zzz3002, ty_Integer) → new_esEs9(zzz4002, zzz3002)
new_compare11(zzz400000, zzz3300000, app(app(ty_Either, cg), da)) → new_compare17(zzz400000, zzz3300000, cg, da)
new_compare25(zzz400000, zzz3300000, False, db, dc, dd) → new_compare112(zzz400000, zzz3300000, new_ltEs13(zzz400000, zzz3300000, db, dc, dd), db, dc, dd)
new_esEs26(zzz400000, zzz3300000, ty_Integer) → new_esEs9(zzz400000, zzz3300000)
new_esEs24(zzz4000, zzz3000, ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_esEs23(zzz400001, zzz3300001, ty_Double) → new_esEs16(zzz400001, zzz3300001)
new_ltEs6(LT, GT) → True
new_compare11(zzz400000, zzz3300000, ty_Ordering) → new_compare8(zzz400000, zzz3300000)
new_lt13(zzz400001, zzz3300001, ty_Ordering) → new_lt6(zzz400001, zzz3300001)
new_compare112(zzz400000, zzz3300000, False, db, dc, dd) → GT
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Double) → new_esEs16(zzz4000, zzz3000)
new_esEs12(True, False) → False
new_esEs12(False, True) → False
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, ty_Int) → new_ltEs12(zzz400000, zzz3300000)
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Bool, fa) → new_esEs12(zzz4000, zzz3000)
new_esEs11(zzz4000, zzz3000, app(ty_Ratio, ea)) → new_esEs13(zzz4000, zzz3000, ea)
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(ty_Ratio, cgg), cdh) → new_ltEs11(zzz400000, zzz3300000, cgg)
new_compare11(zzz400000, zzz3300000, ty_Float) → new_compare12(zzz400000, zzz3300000)
new_esEs11(zzz4000, zzz3000, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_ltEs18(zzz400002, zzz3300002, app(ty_Maybe, bgc)) → new_ltEs8(zzz400002, zzz3300002, bgc)
new_ltEs14(True, False) → False
new_gt0(zzz400, zzz330, dce) → new_esEs8(new_compare30(zzz400, zzz330, dce), GT)
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_ltEs8(Nothing, Nothing, bhc) → True
new_esEs22(zzz400000, zzz3300000, ty_@0) → new_esEs14(zzz400000, zzz3300000)
new_esEs25(zzz4001, zzz3001, app(app(app(ty_@3, ccf), ccg), cch)) → new_esEs5(zzz4001, zzz3001, ccf, ccg, cch)
new_esEs15(Float(zzz4000, zzz4001), Float(zzz3000, zzz3001)) → new_esEs18(new_sr(zzz4000, zzz3000), new_sr(zzz4001, zzz3001))
new_lt20(zzz400000, zzz3300000, ty_Char) → new_lt12(zzz400000, zzz3300000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Integer, cdh) → new_ltEs16(zzz400000, zzz3300000)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, app(app(ty_Either, dah), dba)) → new_ltEs15(zzz400000, zzz3300000, dah, dba)
new_compare27(zzz4000, zzz33000, True, bah) → EQ
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, ty_Bool) → new_ltEs14(zzz400000, zzz3300000)
new_compare28(zzz400000, zzz3300000, False) → new_compare113(zzz400000, zzz3300000, new_ltEs6(zzz400000, zzz3300000))
new_esEs22(zzz400000, zzz3300000, ty_Double) → new_esEs16(zzz400000, zzz3300000)
new_esEs20(zzz4001, zzz3001, ty_Char) → new_esEs17(zzz4001, zzz3001)
new_ltEs7(zzz40000, zzz330000) → new_fsEs(new_compare6(zzz40000, zzz330000))
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, app(ty_Ratio, daa)) → new_ltEs11(zzz400000, zzz3300000, daa)
new_primPlusNat1(Zero, Zero) → Zero
new_ltEs6(LT, EQ) → True
new_ltEs6(GT, LT) → False
new_esEs29(zzz400, Just(zzz3300), ty_Int) → new_esEs18(zzz400, zzz3300)
new_asAs(True, zzz202) → zzz202
new_esEs26(zzz400000, zzz3300000, app(app(app(ty_@3, ced), cee), cef)) → new_esEs5(zzz400000, zzz3300000, ced, cee, cef)
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_esEs11(zzz4000, zzz3000, ty_Char) → new_esEs17(zzz4000, zzz3000)
new_esEs11(zzz4000, zzz3000, app(ty_[], ef)) → new_esEs10(zzz4000, zzz3000, ef)
new_esEs29(zzz400, Just(zzz3300), ty_Ordering) → new_esEs8(zzz400, zzz3300)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Integer) → new_ltEs16(zzz400000, zzz3300000)
new_compare8(zzz400000, zzz3300000) → new_compare28(zzz400000, zzz3300000, new_esEs8(zzz400000, zzz3300000))
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, ty_Integer) → new_ltEs16(zzz400000, zzz3300000)
new_lt13(zzz400001, zzz3300001, ty_@0) → new_lt16(zzz400001, zzz3300001)
new_esEs29(zzz400, Just(zzz3300), ty_Integer) → new_esEs9(zzz400, zzz3300)
new_esEs29(zzz400, Just(zzz3300), ty_@0) → new_esEs14(zzz400, zzz3300)
new_fsEs(zzz205) → new_not(new_esEs8(zzz205, GT))
new_ltEs20(zzz400001, zzz3300001, ty_Float) → new_ltEs9(zzz400001, zzz3300001)
new_esEs26(zzz400000, zzz3300000, app(app(ty_@2, ceg), ceh)) → new_esEs6(zzz400000, zzz3300000, ceg, ceh)
new_esEs23(zzz400001, zzz3300001, app(app(app(ty_@3, bfb), bfc), bfd)) → new_esEs5(zzz400001, zzz3300001, bfb, bfc, bfd)
new_lt20(zzz400000, zzz3300000, ty_Int) → new_lt9(zzz400000, zzz3300000)
new_esEs19(zzz4000, zzz3000, ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_esEs26(zzz400000, zzz3300000, ty_Double) → new_esEs16(zzz400000, zzz3300000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(app(ty_Either, chf), chg), cdh) → new_ltEs15(zzz400000, zzz3300000, chf, chg)
new_ltEs15(Left(zzz400000), Right(zzz3300000), cdg, cdh) → True
new_ltEs18(zzz400002, zzz3300002, app(app(ty_@2, bgg), bgh)) → new_ltEs4(zzz400002, zzz3300002, bgg, bgh)
new_ltEs20(zzz400001, zzz3300001, ty_Ordering) → new_ltEs6(zzz400001, zzz3300001)
new_lt17(zzz400000, zzz3300000, bd, be) → new_esEs8(new_compare16(zzz400000, zzz3300000, bd, be), LT)
new_compare5(:%(zzz400000, zzz400001), :%(zzz3300000, zzz3300001), ty_Int) → new_compare7(new_sr(zzz400000, zzz3300001), new_sr(zzz3300000, zzz400001))
new_esEs21(zzz4002, zzz3002, ty_Bool) → new_esEs12(zzz4002, zzz3002)
new_compare30(zzz400, zzz330, dce) → new_compare27(Just(zzz400), zzz330, new_esEs29(zzz400, zzz330, dce), dce)
new_lt5(zzz400000, zzz3300000, bc) → new_esEs8(new_compare5(zzz400000, zzz3300000, bc), LT)
new_esEs25(zzz4001, zzz3001, app(app(ty_Either, ccb), ccc)) → new_esEs7(zzz4001, zzz3001, ccb, ccc)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCompAux0(zzz220, EQ) → zzz220
new_ltEs15(Right(zzz400000), Left(zzz3300000), cdg, cdh) → False
new_compare29(zzz400000, zzz3300000, False) → new_compare111(zzz400000, zzz3300000, new_ltEs14(zzz400000, zzz3300000))
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(app(ty_@2, chd), che), cdh) → new_ltEs4(zzz400000, zzz3300000, chd, che)
new_ltEs20(zzz400001, zzz3300001, ty_Char) → new_ltEs17(zzz400001, zzz3300001)
new_primEqInt(Neg(Zero), Pos(Zero)) → True
new_primEqInt(Pos(Zero), Neg(Zero)) → True
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Float, cdh) → new_ltEs9(zzz400000, zzz3300000)
new_not(True) → False
new_esEs25(zzz4001, zzz3001, ty_Integer) → new_esEs9(zzz4001, zzz3001)

The set Q consists of the following terms:

new_esEs19(x0, x1, ty_Integer)
new_esEs24(x0, x1, ty_Ordering)
new_ltEs20(x0, x1, app(ty_Maybe, x2))
new_lt13(x0, x1, app(ty_Ratio, x2))
new_lt14(x0, x1, ty_Double)
new_ltEs8(Just(x0), Just(x1), ty_Int)
new_esEs7(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_esEs22(x0, x1, app(app(ty_Either, x2), x3))
new_esEs4(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_ltEs13(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_esEs29(x0, Just(x1), ty_Integer)
new_ltEs15(Left(x0), Left(x1), ty_@0, x2)
new_esEs7(Left(x0), Left(x1), ty_Char, x2)
new_primPlusNat0(Succ(x0), x1)
new_esEs11(x0, x1, ty_@0)
new_primPlusNat0(Zero, x0)
new_pePe(True, x0)
new_ltEs19(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs19(x0, x1, ty_Int)
new_asAs(True, x0)
new_compare26(x0, x1, False, x2, x3)
new_lt13(x0, x1, ty_Ordering)
new_esEs7(Right(x0), Right(x1), x2, app(ty_[], x3))
new_esEs12(False, False)
new_esEs20(x0, x1, app(ty_[], x2))
new_ltEs8(Just(x0), Just(x1), ty_Integer)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_esEs24(x0, x1, app(app(ty_Either, x2), x3))
new_lt11(x0, x1)
new_ltEs19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare111(x0, x1, False)
new_esEs20(x0, x1, ty_Bool)
new_esEs26(x0, x1, ty_Int)
new_ltEs20(x0, x1, app(app(ty_@2, x2), x3))
new_compare15(x0, x1)
new_lt14(x0, x1, ty_Ordering)
new_esEs26(x0, x1, ty_Double)
new_esEs24(x0, x1, ty_@0)
new_primEqInt(Neg(Succ(x0)), Neg(Zero))
new_compare19(Char(x0), Char(x1))
new_primPlusNat1(Succ(x0), Zero)
new_compare28(x0, x1, False)
new_esEs26(x0, x1, app(ty_[], x2))
new_esEs22(x0, x1, ty_Integer)
new_esEs19(x0, x1, app(app(ty_@2, x2), x3))
new_compare6(Double(x0, x1), Double(x2, x3))
new_esEs4(Just(x0), Just(x1), ty_Bool)
new_compare27(Nothing, Nothing, False, x0)
new_esEs11(x0, x1, ty_Float)
new_primCompAux0(x0, LT)
new_esEs7(Left(x0), Left(x1), app(ty_[], x2), x3)
new_ltEs14(True, False)
new_ltEs14(False, True)
new_esEs22(x0, x1, app(ty_[], x2))
new_esEs25(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare25(x0, x1, False, x2, x3, x4)
new_esEs8(GT, GT)
new_primMulInt(Pos(x0), Pos(x1))
new_compare(:(x0, x1), [], x2)
new_ltEs18(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt10(x0, x1)
new_primEqInt(Pos(Succ(x0)), Neg(x1))
new_primEqInt(Neg(Succ(x0)), Pos(x1))
new_esEs7(Left(x0), Left(x1), ty_Double, x2)
new_esEs8(LT, LT)
new_lt20(x0, x1, ty_Double)
new_esEs19(x0, x1, ty_Int)
new_ltEs7(x0, x1)
new_esEs21(x0, x1, app(app(ty_@2, x2), x3))
new_esEs4(Just(x0), Just(x1), app(ty_Ratio, x2))
new_ltEs15(Right(x0), Right(x1), x2, ty_Int)
new_compare11(x0, x1, ty_@0)
new_primEqInt(Pos(Succ(x0)), Pos(Zero))
new_lt13(x0, x1, ty_Double)
new_esEs7(Right(x0), Left(x1), x2, x3)
new_esEs7(Left(x0), Right(x1), x2, x3)
new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_lt13(x0, x1, ty_@0)
new_ltEs6(EQ, EQ)
new_lt20(x0, x1, ty_Integer)
new_esEs22(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs10([], :(x0, x1), x2)
new_esEs7(Left(x0), Left(x1), ty_Ordering, x2)
new_ltEs18(x0, x1, ty_Int)
new_compare11(x0, x1, app(ty_Ratio, x2))
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_lt14(x0, x1, ty_Int)
new_esEs29(x0, Nothing, x1)
new_esEs23(x0, x1, app(ty_Maybe, x2))
new_compare11(x0, x1, app(ty_[], x2))
new_ltEs15(Left(x0), Left(x1), ty_Bool, x2)
new_esEs7(Left(x0), Left(x1), ty_@0, x2)
new_esEs10(:(x0, x1), [], x2)
new_esEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs29(x0, Just(x1), app(ty_Maybe, x2))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs11(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs6(LT, EQ)
new_esEs7(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_ltEs6(EQ, LT)
new_lt7(x0, x1)
new_esEs24(x0, x1, app(ty_Maybe, x2))
new_esEs11(x0, x1, ty_Integer)
new_esEs20(x0, x1, ty_Float)
new_lt9(x0, x1)
new_primCmpNat0(Succ(x0), Zero)
new_primEqNat0(Zero, Zero)
new_esEs19(x0, x1, app(ty_Maybe, x2))
new_lt14(x0, x1, app(app(ty_@2, x2), x3))
new_esEs18(x0, x1)
new_ltEs10(x0, x1, x2)
new_esEs19(x0, x1, ty_Ordering)
new_esEs21(x0, x1, app(ty_Ratio, x2))
new_lt20(x0, x1, ty_Ordering)
new_esEs19(x0, x1, ty_Char)
new_esEs7(Right(x0), Right(x1), x2, ty_Char)
new_compare114(x0, x1, False, x2, x3)
new_esEs22(x0, x1, ty_Char)
new_ltEs15(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_compare114(x0, x1, True, x2, x3)
new_lt20(x0, x1, ty_@0)
new_esEs23(x0, x1, ty_Char)
new_lt14(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs8(Nothing, Nothing, x0)
new_primMulNat0(Zero, Zero)
new_compare([], :(x0, x1), x2)
new_lt19(x0, x1)
new_lt13(x0, x1, app(app(ty_Either, x2), x3))
new_esEs23(x0, x1, app(app(ty_@2, x2), x3))
new_compare27(Just(x0), Just(x1), False, x2)
new_esEs19(x0, x1, app(app(ty_Either, x2), x3))
new_compare11(x0, x1, ty_Int)
new_esEs4(Just(x0), Just(x1), ty_Int)
new_ltEs18(x0, x1, ty_Bool)
new_primMulNat0(Zero, Succ(x0))
new_compare11(x0, x1, ty_Double)
new_ltEs8(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_ltEs15(Right(x0), Right(x1), x2, ty_Char)
new_ltEs20(x0, x1, ty_Char)
new_ltEs20(x0, x1, ty_Bool)
new_compare(:(x0, x1), :(x2, x3), x4)
new_primEqInt(Pos(Zero), Neg(Succ(x0)))
new_primEqInt(Neg(Zero), Pos(Succ(x0)))
new_ltEs8(Just(x0), Just(x1), ty_Double)
new_esEs4(Just(x0), Just(x1), ty_Integer)
new_primCmpNat0(Succ(x0), Succ(x1))
new_esEs29(x0, Just(x1), app(ty_Ratio, x2))
new_lt12(x0, x1)
new_lt14(x0, x1, ty_Char)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_ltEs15(Left(x0), Left(x1), ty_Char, x2)
new_compare8(x0, x1)
new_ltEs17(x0, x1)
new_esEs26(x0, x1, ty_Integer)
new_esEs23(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs7(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_esEs4(Just(x0), Just(x1), app(ty_[], x2))
new_lt20(x0, x1, app(ty_Ratio, x2))
new_esEs14(@0, @0)
new_ltEs8(Just(x0), Just(x1), app(ty_Ratio, x2))
new_compare12(Float(x0, x1), Float(x2, x3))
new_compare27(x0, x1, True, x2)
new_esEs19(x0, x1, ty_Double)
new_ltEs20(x0, x1, app(ty_[], x2))
new_ltEs15(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_lt8(x0, x1, x2, x3, x4)
new_esEs23(x0, x1, ty_@0)
new_esEs11(x0, x1, ty_Int)
new_primPlusNat1(Succ(x0), Succ(x1))
new_ltEs6(GT, LT)
new_ltEs6(LT, GT)
new_esEs29(x0, Just(x1), ty_@0)
new_esEs23(x0, x1, ty_Ordering)
new_compare110(x0, x1, True, x2)
new_ltEs19(x0, x1, ty_Integer)
new_ltEs11(x0, x1, x2)
new_esEs4(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_compare13(x0, x1, x2)
new_esEs10(:(x0, x1), :(x2, x3), x4)
new_ltEs15(Right(x0), Left(x1), x2, x3)
new_ltEs15(Left(x0), Right(x1), x2, x3)
new_esEs23(x0, x1, app(app(ty_Either, x2), x3))
new_pePe(False, x0)
new_lt4(x0, x1, x2)
new_esEs26(x0, x1, ty_Char)
new_ltEs8(Just(x0), Just(x1), ty_@0)
new_esEs27(x0, x1, ty_Integer)
new_compare29(x0, x1, True)
new_ltEs18(x0, x1, app(app(ty_@2, x2), x3))
new_esEs11(x0, x1, ty_Double)
new_lt20(x0, x1, app(app(ty_@2, x2), x3))
new_compare11(x0, x1, app(app(ty_@2, x2), x3))
new_compare30(x0, x1, x2)
new_ltEs18(x0, x1, ty_Char)
new_esEs19(x0, x1, app(ty_[], x2))
new_ltEs18(x0, x1, app(ty_Maybe, x2))
new_esEs7(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_esEs23(x0, x1, ty_Float)
new_esEs22(x0, x1, app(app(ty_@2, x2), x3))
new_esEs21(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs8(Just(x0), Just(x1), app(ty_[], x2))
new_primMulNat0(Succ(x0), Zero)
new_primEqInt(Neg(Zero), Neg(Succ(x0)))
new_esEs24(x0, x1, app(ty_Ratio, x2))
new_ltEs19(x0, x1, app(ty_Maybe, x2))
new_ltEs15(Right(x0), Right(x1), x2, ty_Bool)
new_primPlusNat1(Zero, Zero)
new_ltEs18(x0, x1, ty_Integer)
new_esEs26(x0, x1, ty_Bool)
new_esEs26(x0, x1, ty_Float)
new_esEs25(x0, x1, app(app(ty_@2, x2), x3))
new_esEs16(Double(x0, x1), Double(x2, x3))
new_esEs29(x0, Just(x1), ty_Char)
new_esEs21(x0, x1, app(ty_[], x2))
new_esEs25(x0, x1, ty_Char)
new_ltEs19(x0, x1, ty_@0)
new_ltEs15(Left(x0), Left(x1), ty_Ordering, x2)
new_ltEs15(Left(x0), Left(x1), ty_Integer, x2)
new_esEs25(x0, x1, app(ty_Maybe, x2))
new_primCompAux1(x0, x1, x2, x3)
new_ltEs20(x0, x1, ty_Int)
new_esEs24(x0, x1, app(ty_[], x2))
new_esEs25(x0, x1, app(ty_[], x2))
new_lt14(x0, x1, app(ty_[], x2))
new_compare16(x0, x1, x2, x3)
new_esEs22(x0, x1, app(ty_Maybe, x2))
new_ltEs8(Just(x0), Nothing, x1)
new_ltEs18(x0, x1, ty_Float)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_esEs26(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs18(x0, x1, app(app(ty_Either, x2), x3))
new_compare5(:%(x0, x1), :%(x2, x3), ty_Integer)
new_esEs20(x0, x1, ty_Int)
new_ltEs15(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_ltEs8(Nothing, Just(x0), x1)
new_esEs4(Just(x0), Just(x1), ty_Ordering)
new_lt6(x0, x1)
new_esEs4(Nothing, Nothing, x0)
new_lt14(x0, x1, ty_Bool)
new_esEs21(x0, x1, ty_Char)
new_esEs21(x0, x1, ty_Double)
new_ltEs15(Left(x0), Left(x1), app(ty_[], x2), x3)
new_ltEs9(x0, x1)
new_esEs25(x0, x1, ty_Float)
new_compare11(x0, x1, ty_Integer)
new_compare27(Nothing, Just(x0), False, x1)
new_esEs21(x0, x1, ty_Bool)
new_primMulNat0(Succ(x0), Succ(x1))
new_esEs21(x0, x1, app(ty_Maybe, x2))
new_lt20(x0, x1, ty_Bool)
new_esEs26(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs20(x0, x1, app(app(ty_Either, x2), x3))
new_lt16(x0, x1)
new_compare17(x0, x1, x2, x3)
new_compare18(Integer(x0), Integer(x1))
new_esEs7(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_esEs7(Left(x0), Left(x1), ty_Float, x2)
new_compare11(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs12(True, True)
new_esEs24(x0, x1, ty_Integer)
new_esEs29(x0, Just(x1), ty_Int)
new_esEs4(Just(x0), Just(x1), ty_Float)
new_esEs21(x0, x1, ty_Ordering)
new_esEs13(:%(x0, x1), :%(x2, x3), x4)
new_esEs24(x0, x1, ty_Double)
new_ltEs19(x0, x1, ty_Bool)
new_esEs7(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_esEs7(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_lt13(x0, x1, ty_Int)
new_lt5(x0, x1, x2)
new_lt13(x0, x1, app(ty_Maybe, x2))
new_compare112(x0, x1, False, x2, x3, x4)
new_esEs7(Left(x0), Left(x1), ty_Bool, x2)
new_esEs11(x0, x1, app(ty_Ratio, x2))
new_ltEs15(Right(x0), Right(x1), x2, ty_Double)
new_lt14(x0, x1, ty_Integer)
new_ltEs18(x0, x1, ty_@0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_lt14(x0, x1, app(ty_Ratio, x2))
new_lt13(x0, x1, ty_Char)
new_primEqInt(Neg(Zero), Pos(Zero))
new_primEqInt(Pos(Zero), Neg(Zero))
new_primEqNat0(Succ(x0), Succ(x1))
new_compare14(x0, x1, x2, x3, x4)
new_esEs24(x0, x1, ty_Char)
new_ltEs15(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_esEs21(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs29(x0, Just(x1), ty_Ordering)
new_ltEs8(Just(x0), Just(x1), ty_Float)
new_esEs25(x0, x1, app(ty_Ratio, x2))
new_esEs26(x0, x1, ty_Ordering)
new_esEs26(x0, x1, app(ty_Maybe, x2))
new_esEs19(x0, x1, ty_Float)
new_esEs20(x0, x1, ty_@0)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_compare11(x0, x1, ty_Ordering)
new_lt20(x0, x1, ty_Float)
new_esEs29(x0, Just(x1), ty_Float)
new_esEs24(x0, x1, ty_Int)
new_compare110(x0, x1, False, x2)
new_primEqInt(Neg(Zero), Neg(Zero))
new_asAs(False, x0)
new_ltEs15(Right(x0), Right(x1), x2, ty_Integer)
new_lt13(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs4(Just(x0), Just(x1), ty_Double)
new_lt15(x0, x1, x2)
new_esEs5(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_ltEs20(x0, x1, app(ty_Ratio, x2))
new_compare24(x0, x1, True, x2, x3)
new_esEs29(x0, Just(x1), ty_Bool)
new_compare113(x0, x1, True)
new_esEs4(Just(x0), Nothing, x1)
new_lt13(x0, x1, ty_Float)
new_primCmpNat0(Zero, Succ(x0))
new_lt14(x0, x1, app(ty_Maybe, x2))
new_esEs26(x0, x1, app(app(ty_@2, x2), x3))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_ltEs19(x0, x1, app(ty_Ratio, x2))
new_esEs11(x0, x1, ty_Bool)
new_esEs22(x0, x1, ty_Double)
new_compare25(x0, x1, True, x2, x3, x4)
new_esEs25(x0, x1, ty_Bool)
new_esEs28(x0, x1, ty_Int)
new_ltEs15(Right(x0), Right(x1), x2, ty_Float)
new_esEs15(Float(x0, x1), Float(x2, x3))
new_primMulInt(Neg(x0), Neg(x1))
new_compare5(:%(x0, x1), :%(x2, x3), ty_Int)
new_esEs20(x0, x1, app(app(ty_@2, x2), x3))
new_esEs20(x0, x1, ty_Char)
new_ltEs19(x0, x1, ty_Char)
new_esEs7(Right(x0), Right(x1), x2, ty_Ordering)
new_esEs23(x0, x1, app(ty_Ratio, x2))
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_compare29(x0, x1, False)
new_esEs20(x0, x1, ty_Double)
new_ltEs6(GT, GT)
new_lt13(x0, x1, ty_Bool)
new_esEs23(x0, x1, ty_Integer)
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_compare27(Just(x0), Nothing, False, x1)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primEqInt(Pos(Zero), Pos(Succ(x0)))
new_primCmpNat0(Zero, Zero)
new_ltEs8(Just(x0), Just(x1), ty_Char)
new_esEs27(x0, x1, ty_Int)
new_ltEs6(LT, LT)
new_ltEs15(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_esEs22(x0, x1, ty_Bool)
new_primPlusNat1(Zero, Succ(x0))
new_ltEs18(x0, x1, ty_Double)
new_esEs22(x0, x1, ty_Int)
new_lt13(x0, x1, ty_Integer)
new_lt18(x0, x1, x2, x3)
new_esEs28(x0, x1, ty_Integer)
new_esEs17(Char(x0), Char(x1))
new_esEs29(x0, Just(x1), app(app(ty_Either, x2), x3))
new_esEs29(x0, Just(x1), app(ty_[], x2))
new_esEs11(x0, x1, app(ty_Maybe, x2))
new_lt20(x0, x1, ty_Char)
new_esEs20(x0, x1, app(ty_Maybe, x2))
new_esEs25(x0, x1, ty_Integer)
new_ltEs15(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_lt17(x0, x1, x2, x3)
new_esEs4(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_esEs22(x0, x1, app(ty_Ratio, x2))
new_esEs7(Right(x0), Right(x1), x2, ty_Integer)
new_ltEs15(Left(x0), Left(x1), ty_Double, x2)
new_esEs24(x0, x1, app(app(ty_@2, x2), x3))
new_esEs23(x0, x1, ty_Double)
new_esEs4(Just(x0), Just(x1), ty_Char)
new_ltEs20(x0, x1, ty_Ordering)
new_esEs7(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_lt13(x0, x1, app(app(ty_@2, x2), x3))
new_esEs12(True, False)
new_esEs12(False, True)
new_compare28(x0, x1, True)
new_sr(x0, x1)
new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_compare9(@0, @0)
new_esEs11(x0, x1, ty_Char)
new_ltEs19(x0, x1, ty_Double)
new_fsEs(x0)
new_ltEs14(True, True)
new_esEs21(x0, x1, ty_Integer)
new_lt20(x0, x1, app(ty_Maybe, x2))
new_esEs6(@2(x0, x1), @2(x2, x3), x4, x5)
new_ltEs14(False, False)
new_compare([], [], x0)
new_esEs11(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs18(x0, x1, app(ty_[], x2))
new_esEs20(x0, x1, app(ty_Ratio, x2))
new_ltEs15(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_ltEs8(Just(x0), Just(x1), app(ty_Maybe, x2))
new_esEs7(Right(x0), Right(x1), x2, ty_Bool)
new_ltEs5(x0, x1)
new_esEs11(x0, x1, ty_Ordering)
new_esEs25(x0, x1, ty_Int)
new_esEs23(x0, x1, ty_Bool)
new_esEs7(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_ltEs20(x0, x1, ty_Float)
new_primEqNat0(Zero, Succ(x0))
new_not(True)
new_esEs11(x0, x1, app(ty_[], x2))
new_lt14(x0, x1, app(app(ty_Either, x2), x3))
new_primCompAux0(x0, EQ)
new_esEs20(x0, x1, app(app(ty_Either, x2), x3))
new_compare112(x0, x1, True, x2, x3, x4)
new_ltEs15(Left(x0), Left(x1), ty_Float, x2)
new_esEs25(x0, x1, ty_Ordering)
new_ltEs20(x0, x1, ty_Integer)
new_esEs26(x0, x1, ty_@0)
new_esEs20(x0, x1, ty_Integer)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_compare111(x0, x1, True)
new_ltEs15(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_not(False)
new_esEs21(x0, x1, ty_@0)
new_ltEs6(EQ, GT)
new_ltEs6(GT, EQ)
new_lt13(x0, x1, app(ty_[], x2))
new_ltEs15(Left(x0), Left(x1), ty_Int, x2)
new_lt14(x0, x1, ty_Float)
new_ltEs20(x0, x1, ty_@0)
new_esEs23(x0, x1, ty_Int)
new_ltEs19(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs8(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_esEs10([], [], x0)
new_ltEs19(x0, x1, ty_Ordering)
new_esEs24(x0, x1, ty_Bool)
new_ltEs15(Right(x0), Right(x1), x2, ty_@0)
new_ltEs15(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_esEs29(x0, Just(x1), ty_Double)
new_ltEs15(Right(x0), Right(x1), x2, ty_Ordering)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_compare11(x0, x1, app(app(ty_Either, x2), x3))
new_lt14(x0, x1, ty_@0)
new_ltEs8(Just(x0), Just(x1), ty_Ordering)
new_esEs7(Right(x0), Right(x1), x2, ty_Int)
new_esEs4(Just(x0), Just(x1), ty_@0)
new_esEs25(x0, x1, ty_Double)
new_lt20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs19(x0, x1, app(ty_[], x2))
new_esEs4(Nothing, Just(x0), x1)
new_esEs25(x0, x1, app(app(ty_Either, x2), x3))
new_compare11(x0, x1, app(ty_Maybe, x2))
new_esEs29(x0, Just(x1), app(app(ty_@2, x2), x3))
new_esEs11(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare7(x0, x1)
new_esEs24(x0, x1, ty_Float)
new_esEs7(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_esEs23(x0, x1, app(ty_[], x2))
new_esEs4(Just(x0), Just(x1), app(ty_Maybe, x2))
new_ltEs18(x0, x1, app(ty_Ratio, x2))
new_lt20(x0, x1, app(app(ty_Either, x2), x3))
new_esEs19(x0, x1, ty_Bool)
new_esEs25(x0, x1, ty_@0)
new_esEs7(Right(x0), Right(x1), x2, ty_Double)
new_esEs7(Right(x0), Right(x1), x2, ty_Float)
new_esEs29(x0, Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_esEs7(Left(x0), Left(x1), ty_Integer, x2)
new_lt20(x0, x1, ty_Int)
new_sr0(Integer(x0), Integer(x1))
new_esEs20(x0, x1, ty_Ordering)
new_compare11(x0, x1, ty_Char)
new_lt20(x0, x1, app(ty_[], x2))
new_ltEs4(@2(x0, x1), @2(x2, x3), x4, x5)
new_ltEs15(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_primEqInt(Pos(Zero), Pos(Zero))
new_esEs26(x0, x1, app(ty_Ratio, x2))
new_esEs19(x0, x1, app(ty_Ratio, x2))
new_esEs22(x0, x1, ty_Ordering)
new_esEs21(x0, x1, ty_Int)
new_esEs7(Left(x0), Left(x1), ty_Int, x2)
new_esEs24(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_primCompAux0(x0, GT)
new_ltEs18(x0, x1, ty_Ordering)
new_esEs9(Integer(x0), Integer(x1))
new_gt0(x0, x1, x2)
new_esEs19(x0, x1, ty_@0)
new_esEs7(Right(x0), Right(x1), x2, ty_@0)
new_esEs22(x0, x1, ty_Float)
new_compare24(x0, x1, False, x2, x3)
new_compare10(x0, x1, True, x2, x3)
new_esEs21(x0, x1, ty_Float)
new_ltEs20(x0, x1, ty_Double)
new_primEqNat0(Succ(x0), Zero)
new_esEs22(x0, x1, ty_@0)
new_compare10(x0, x1, False, x2, x3)
new_compare11(x0, x1, ty_Float)
new_ltEs8(Just(x0), Just(x1), ty_Bool)
new_ltEs8(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_compare113(x0, x1, False)
new_compare26(x0, x1, True, x2, x3)
new_ltEs12(x0, x1)
new_ltEs19(x0, x1, ty_Float)
new_ltEs16(x0, x1)
new_ltEs15(Right(x0), Right(x1), x2, app(ty_[], x3))
new_compare11(x0, x1, ty_Bool)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))

We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_splitGT(Branch(zzz25940, zzz25941, zzz25942, zzz25943, zzz25944), zzz260, h, ba) → new_splitGT2(zzz25940, zzz25941, zzz25942, zzz25943, zzz25944, zzz260, new_gt(Just(zzz260), zzz25940, h), h, ba)
new_splitGT1(zzz2590, zzz2591, zzz2592, zzz2593, zzz2594, zzz260, True, h, ba) → new_splitGT(zzz2593, zzz260, h, ba)
new_splitGT2(zzz2590, zzz2591, zzz2592, zzz2593, zzz2594, zzz260, False, h, ba) → new_splitGT1(zzz2590, zzz2591, zzz2592, zzz2593, zzz2594, zzz260, new_lt15(Just(zzz260), zzz2590, h), h, ba)
new_splitGT2(zzz2590, zzz2591, zzz2592, zzz2593, Branch(zzz25940, zzz25941, zzz25942, zzz25943, zzz25944), zzz260, True, h, ba) → new_splitGT2(zzz25940, zzz25941, zzz25942, zzz25943, zzz25944, zzz260, new_gt(Just(zzz260), zzz25940, h), h, ba)

The TRS R consists of the following rules:

new_esEs4(Just(zzz4000), Just(zzz3000), app(ty_Maybe, dbg)) → new_esEs4(zzz4000, zzz3000, dbg)
new_esEs23(zzz400001, zzz3300001, app(app(ty_Either, bfh), bga)) → new_esEs7(zzz400001, zzz3300001, bfh, bga)
new_ltEs19(zzz40000, zzz330000, ty_Integer) → new_ltEs16(zzz40000, zzz330000)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_esEs7(Left(zzz4000), Left(zzz3000), app(app(ty_Either, fc), fd), fb) → new_esEs7(zzz4000, zzz3000, fc, fd)
new_ltEs19(zzz40000, zzz330000, app(ty_Ratio, cde)) → new_ltEs11(zzz40000, zzz330000, cde)
new_esEs21(zzz4002, zzz3002, app(app(ty_@2, beb), bec)) → new_esEs6(zzz4002, zzz3002, beb, bec)
new_esEs7(Right(zzz4000), Right(zzz3000), gf, ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdh, app(ty_Maybe, dac)) → new_ltEs8(zzz400000, zzz3300000, dac)
new_lt14(zzz400000, zzz3300000, ty_Integer) → new_lt7(zzz400000, zzz3300000)
new_ltEs18(zzz400002, zzz3300002, ty_Int) → new_ltEs12(zzz400002, zzz3300002)
new_esEs24(zzz4000, zzz3000, app(app(app(ty_@3, cbe), cbf), cbg)) → new_esEs5(zzz4000, zzz3000, cbe, cbf, cbg)
new_esEs17(Char(zzz4000), Char(zzz3000)) → new_primEqNat0(zzz4000, zzz3000)
new_esEs20(zzz4001, zzz3001, ty_Bool) → new_esEs12(zzz4001, zzz3001)
new_esEs7(Left(zzz4000), Left(zzz3000), app(ty_Maybe, fg), fb) → new_esEs4(zzz4000, zzz3000, fg)
new_esEs24(zzz4000, zzz3000, ty_Char) → new_esEs17(zzz4000, zzz3000)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdh, ty_Float) → new_ltEs9(zzz400000, zzz3300000)
new_ltEs20(zzz400001, zzz3300001, app(ty_[], cfd)) → new_ltEs10(zzz400001, zzz3300001, cfd)
new_compare([], :(zzz3300000, zzz3300001), bg) → LT
new_compare10(zzz400000, zzz3300000, True, be, bf) → LT
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(app(app(ty_@3, bhh), caa), cab)) → new_ltEs13(zzz400000, zzz3300000, bhh, caa, cab)
new_lt13(zzz400001, zzz3300001, app(app(app(ty_@3, bfc), bfd), bfe)) → new_lt8(zzz400001, zzz3300001, bfc, bfd, bfe)
new_esEs24(zzz4000, zzz3000, app(ty_Maybe, cbd)) → new_esEs4(zzz4000, zzz3000, cbd)
new_esEs19(zzz4000, zzz3000, ty_Float) → new_esEs15(zzz4000, zzz3000)
new_esEs4(Nothing, Just(zzz3000), dbc) → False
new_esEs4(Just(zzz4000), Nothing, dbc) → False
new_lt20(zzz400000, zzz3300000, app(app(app(ty_@3, cee), cef), ceg)) → new_lt8(zzz400000, zzz3300000, cee, cef, ceg)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Char) → new_esEs17(zzz4000, zzz3000)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_@0) → new_esEs14(zzz4000, zzz3000)
new_esEs25(zzz4001, zzz3001, ty_Char) → new_esEs17(zzz4001, zzz3001)
new_ltEs20(zzz400001, zzz3300001, ty_Double) → new_ltEs7(zzz400001, zzz3300001)
new_primMulNat0(Zero, Zero) → Zero
new_esEs7(Left(zzz4000), Left(zzz3000), app(app(app(ty_@3, fh), ga), gb), fb) → new_esEs5(zzz4000, zzz3000, fh, ga, gb)
new_esEs26(zzz400000, zzz3300000, ty_Float) → new_esEs15(zzz400000, zzz3300000)
new_esEs7(Right(zzz4000), Right(zzz3000), gf, ty_Double) → new_esEs16(zzz4000, zzz3000)
new_compare(:(zzz400000, zzz400001), [], bg) → GT
new_compare11(zzz400000, zzz3300000, ty_Int) → new_compare7(zzz400000, zzz3300000)
new_lt14(zzz400000, zzz3300000, ty_Ordering) → new_lt6(zzz400000, zzz3300000)
new_compare29(zzz400000, zzz3300000, True) → EQ
new_esEs23(zzz400001, zzz3300001, app(ty_Ratio, bfa)) → new_esEs13(zzz400001, zzz3300001, bfa)
new_esEs12(True, True) → True
new_ltEs18(zzz400002, zzz3300002, ty_Integer) → new_ltEs16(zzz400002, zzz3300002)
new_ltEs18(zzz400002, zzz3300002, ty_@0) → new_ltEs5(zzz400002, zzz3300002)
new_esEs20(zzz4001, zzz3001, app(ty_Maybe, bcc)) → new_esEs4(zzz4001, zzz3001, bcc)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Double, cea) → new_ltEs7(zzz400000, zzz3300000)
new_esEs21(zzz4002, zzz3002, app(ty_[], bea)) → new_esEs10(zzz4002, zzz3002, bea)
new_esEs22(zzz400000, zzz3300000, ty_Char) → new_esEs17(zzz400000, zzz3300000)
new_ltEs20(zzz400001, zzz3300001, app(ty_Maybe, cff)) → new_ltEs8(zzz400001, zzz3300001, cff)
new_esEs23(zzz400001, zzz3300001, ty_Bool) → new_esEs12(zzz400001, zzz3300001)
new_esEs7(Right(zzz4000), Right(zzz3000), gf, ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_ltEs18(zzz400002, zzz3300002, ty_Char) → new_ltEs17(zzz400002, zzz3300002)
new_compare11(zzz400000, zzz3300000, app(ty_Maybe, cb)) → new_compare13(zzz400000, zzz3300000, cb)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdh, ty_@0) → new_ltEs5(zzz400000, zzz3300000)
new_ltEs14(False, True) → True
new_esEs24(zzz4000, zzz3000, ty_@0) → new_esEs14(zzz4000, zzz3000)
new_esEs25(zzz4001, zzz3001, ty_Double) → new_esEs16(zzz4001, zzz3001)
new_lt14(zzz400000, zzz3300000, app(app(ty_Either, baa), bab)) → new_lt18(zzz400000, zzz3300000, baa, bab)
new_esEs23(zzz400001, zzz3300001, app(ty_Maybe, bfb)) → new_esEs4(zzz400001, zzz3300001, bfb)
new_compare26(zzz400000, zzz3300000, False, baa, bab) → new_compare114(zzz400000, zzz3300000, new_ltEs15(zzz400000, zzz3300000, baa, bab), baa, bab)
new_esEs7(Right(zzz4000), Right(zzz3000), gf, app(ty_[], hf)) → new_esEs10(zzz4000, zzz3000, hf)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Char, cea) → new_ltEs17(zzz400000, zzz3300000)
new_esEs7(Right(zzz4000), Right(zzz3000), gf, app(app(app(ty_@3, hc), hd), he)) → new_esEs5(zzz4000, zzz3000, hc, hd, he)
new_esEs26(zzz400000, zzz3300000, app(ty_[], ceb)) → new_esEs10(zzz400000, zzz3300000, ceb)
new_esEs20(zzz4001, zzz3001, app(ty_Ratio, bcb)) → new_esEs13(zzz4001, zzz3001, bcb)
new_compare11(zzz400000, zzz3300000, ty_Integer) → new_compare18(zzz400000, zzz3300000)
new_esEs22(zzz400000, zzz3300000, ty_Integer) → new_esEs9(zzz400000, zzz3300000)
new_compare15(zzz400000, zzz3300000) → new_compare29(zzz400000, zzz3300000, new_esEs12(zzz400000, zzz3300000))
new_lt13(zzz400001, zzz3300001, app(app(ty_Either, bfh), bga)) → new_lt18(zzz400001, zzz3300001, bfh, bga)
new_ltEs9(zzz40000, zzz330000) → new_fsEs(new_compare12(zzz40000, zzz330000))
new_ltEs20(zzz400001, zzz3300001, ty_Integer) → new_ltEs16(zzz400001, zzz3300001)
new_lt20(zzz400000, zzz3300000, app(ty_Maybe, ced)) → new_lt15(zzz400000, zzz3300000, ced)
new_lt14(zzz400000, zzz3300000, ty_Char) → new_lt12(zzz400000, zzz3300000)
new_esEs19(zzz4000, zzz3000, app(app(app(ty_@3, bbb), bbc), bbd)) → new_esEs5(zzz4000, zzz3000, bbb, bbc, bbd)
new_esEs19(zzz4000, zzz3000, ty_@0) → new_esEs14(zzz4000, zzz3000)
new_esEs26(zzz400000, zzz3300000, app(ty_Maybe, ced)) → new_esEs4(zzz400000, zzz3300000, ced)
new_esEs20(zzz4001, zzz3001, app(app(ty_@2, bch), bda)) → new_esEs6(zzz4001, zzz3001, bch, bda)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdh, app(app(ty_@2, dag), dah)) → new_ltEs4(zzz400000, zzz3300000, dag, dah)
new_lt13(zzz400001, zzz3300001, ty_Char) → new_lt12(zzz400001, zzz3300001)
new_esEs20(zzz4001, zzz3001, ty_@0) → new_esEs14(zzz4001, zzz3001)
new_esEs22(zzz400000, zzz3300000, app(app(ty_Either, baa), bab)) → new_esEs7(zzz400000, zzz3300000, baa, bab)
new_lt13(zzz400001, zzz3300001, app(ty_[], beh)) → new_lt4(zzz400001, zzz3300001, beh)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Ordering, cea) → new_ltEs6(zzz400000, zzz3300000)
new_lt7(zzz400000, zzz3300000) → new_esEs8(new_compare18(zzz400000, zzz3300000), LT)
new_esEs25(zzz4001, zzz3001, app(ty_[], cdb)) → new_esEs10(zzz4001, zzz3001, cdb)
new_esEs28(zzz4001, zzz3001, ty_Int) → new_esEs18(zzz4001, zzz3001)
new_pePe(False, zzz214) → zzz214
new_esEs19(zzz4000, zzz3000, app(ty_[], bbe)) → new_esEs10(zzz4000, zzz3000, bbe)
new_compare27(Just(zzz40000), Just(zzz330000), False, bba) → new_compare110(zzz40000, zzz330000, new_ltEs19(zzz40000, zzz330000, bba), bba)
new_esEs7(Left(zzz4000), Left(zzz3000), app(ty_[], gc), fb) → new_esEs10(zzz4000, zzz3000, gc)
new_esEs7(Left(zzz4000), Right(zzz3000), gf, fb) → False
new_esEs7(Right(zzz4000), Left(zzz3000), gf, fb) → False
new_esEs27(zzz4000, zzz3000, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_compare11(zzz400000, zzz3300000, app(ty_[], bh)) → new_compare(zzz400000, zzz3300000, bh)
new_lt20(zzz400000, zzz3300000, ty_Bool) → new_lt11(zzz400000, zzz3300000)
new_lt15(zzz4000, zzz33000, bba) → new_esEs8(new_compare13(zzz4000, zzz33000, bba), LT)
new_lt9(zzz4000, zzz33000) → new_esEs8(new_compare7(zzz4000, zzz33000), LT)
new_esEs20(zzz4001, zzz3001, ty_Double) → new_esEs16(zzz4001, zzz3001)
new_ltEs19(zzz40000, zzz330000, app(app(ty_@2, cdf), cdg)) → new_ltEs4(zzz40000, zzz330000, cdf, cdg)
new_lt4(zzz400000, zzz3300000, bb) → new_esEs8(new_compare(zzz400000, zzz3300000, bb), LT)
new_esEs11(zzz4000, zzz3000, ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_lt20(zzz400000, zzz3300000, ty_Float) → new_lt10(zzz400000, zzz3300000)
new_lt6(zzz400000, zzz3300000) → new_esEs8(new_compare8(zzz400000, zzz3300000), LT)
new_ltEs10(zzz40000, zzz330000, bg) → new_fsEs(new_compare(zzz40000, zzz330000, bg))
new_esEs26(zzz400000, zzz3300000, ty_Bool) → new_esEs12(zzz400000, zzz3300000)
new_lt20(zzz400000, zzz3300000, app(app(ty_@2, ceh), cfa)) → new_lt17(zzz400000, zzz3300000, ceh, cfa)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_ltEs6(GT, EQ) → False
new_esEs22(zzz400000, zzz3300000, ty_Ordering) → new_esEs8(zzz400000, zzz3300000)
new_esEs19(zzz4000, zzz3000, app(app(ty_Either, baf), bag)) → new_esEs7(zzz4000, zzz3000, baf, bag)
new_esEs21(zzz4002, zzz3002, ty_Int) → new_esEs18(zzz4002, zzz3002)
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_compare111(zzz400000, zzz3300000, False) → GT
new_esEs18(zzz400, zzz300) → new_primEqInt(zzz400, zzz300)
new_compare111(zzz400000, zzz3300000, True) → LT
new_ltEs20(zzz400001, zzz3300001, app(app(ty_@2, cgb), cgc)) → new_ltEs4(zzz400001, zzz3300001, cgb, cgc)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_esEs22(zzz400000, zzz3300000, ty_Float) → new_esEs15(zzz400000, zzz3300000)
new_ltEs11(zzz40000, zzz330000, cde) → new_fsEs(new_compare5(zzz40000, zzz330000, cde))
new_ltEs8(Nothing, Just(zzz3300000), bhd) → True
new_ltEs20(zzz400001, zzz3300001, ty_Bool) → new_ltEs14(zzz400001, zzz3300001)
new_compare27(Nothing, Just(zzz330000), False, bba) → LT
new_lt20(zzz400000, zzz3300000, ty_Ordering) → new_lt6(zzz400000, zzz3300000)
new_esEs25(zzz4001, zzz3001, app(app(ty_@2, cdc), cdd)) → new_esEs6(zzz4001, zzz3001, cdc, cdd)
new_esEs8(LT, LT) → True
new_ltEs4(@2(zzz400000, zzz400001), @2(zzz3300000, zzz3300001), cdf, cdg) → new_pePe(new_lt20(zzz400000, zzz3300000, cdf), new_asAs(new_esEs26(zzz400000, zzz3300000, cdf), new_ltEs20(zzz400001, zzz3300001, cdg)))
new_compare25(zzz400000, zzz3300000, True, dc, dd, de) → EQ
new_esEs19(zzz4000, zzz3000, app(ty_Maybe, bba)) → new_esEs4(zzz4000, zzz3000, bba)
new_esEs21(zzz4002, zzz3002, app(ty_Ratio, bdd)) → new_esEs13(zzz4002, zzz3002, bdd)
new_lt13(zzz400001, zzz3300001, ty_Int) → new_lt9(zzz400001, zzz3300001)
new_compare17(zzz400000, zzz3300000, baa, bab) → new_compare26(zzz400000, zzz3300000, new_esEs7(zzz400000, zzz3300000, baa, bab), baa, bab)
new_esEs19(zzz4000, zzz3000, ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_esEs25(zzz4001, zzz3001, ty_Ordering) → new_esEs8(zzz4001, zzz3001)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Int) → new_ltEs12(zzz400000, zzz3300000)
new_esEs25(zzz4001, zzz3001, app(ty_Ratio, cce)) → new_esEs13(zzz4001, zzz3001, cce)
new_esEs24(zzz4000, zzz3000, app(app(ty_Either, cba), cbb)) → new_esEs7(zzz4000, zzz3000, cba, cbb)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Double) → new_ltEs7(zzz400000, zzz3300000)
new_lt14(zzz400000, zzz3300000, ty_@0) → new_lt16(zzz400000, zzz3300000)
new_esEs7(Right(zzz4000), Right(zzz3000), gf, ty_Float) → new_esEs15(zzz4000, zzz3000)
new_esEs24(zzz4000, zzz3000, app(app(ty_@2, cca), ccb)) → new_esEs6(zzz4000, zzz3000, cca, ccb)
new_esEs22(zzz400000, zzz3300000, ty_Int) → new_esEs18(zzz400000, zzz3300000)
new_pePe(True, zzz214) → True
new_primEqNat0(Zero, Zero) → True
new_esEs26(zzz400000, zzz3300000, ty_Char) → new_esEs17(zzz400000, zzz3300000)
new_esEs19(zzz4000, zzz3000, app(ty_Ratio, bah)) → new_esEs13(zzz4000, zzz3000, bah)
new_esEs14(@0, @0) → True
new_esEs23(zzz400001, zzz3300001, ty_Integer) → new_esEs9(zzz400001, zzz3300001)
new_esEs26(zzz400000, zzz3300000, app(ty_Ratio, cec)) → new_esEs13(zzz400000, zzz3300000, cec)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Bool) → new_ltEs14(zzz400000, zzz3300000)
new_ltEs19(zzz40000, zzz330000, ty_@0) → new_ltEs5(zzz40000, zzz330000)
new_lt20(zzz400000, zzz3300000, ty_Integer) → new_lt7(zzz400000, zzz3300000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(ty_[], cgg), cea) → new_ltEs10(zzz400000, zzz3300000, cgg)
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Ordering, fb) → new_esEs8(zzz4000, zzz3000)
new_lt13(zzz400001, zzz3300001, ty_Float) → new_lt10(zzz400001, zzz3300001)
new_compare(:(zzz400000, zzz400001), :(zzz3300000, zzz3300001), bg) → new_primCompAux1(zzz400000, zzz3300000, new_compare(zzz400001, zzz3300001, bg), bg)
new_ltEs19(zzz40000, zzz330000, ty_Ordering) → new_ltEs6(zzz40000, zzz330000)
new_sr(zzz4001, zzz3001) → new_primMulInt(zzz4001, zzz3001)
new_esEs4(Just(zzz4000), Just(zzz3000), app(ty_[], dcc)) → new_esEs10(zzz4000, zzz3000, dcc)
new_compare7(zzz400, zzz3300) → new_primCmpInt(zzz400, zzz3300)
new_esEs24(zzz4000, zzz3000, ty_Double) → new_esEs16(zzz4000, zzz3000)
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(app(ty_Either, cae), caf)) → new_ltEs15(zzz400000, zzz3300000, cae, caf)
new_compare12(Float(zzz400000, zzz400001), Float(zzz3300000, zzz3300001)) → new_compare7(new_sr(zzz400000, zzz3300000), new_sr(zzz400001, zzz3300001))
new_esEs26(zzz400000, zzz3300000, ty_Ordering) → new_esEs8(zzz400000, zzz3300000)
new_ltEs6(EQ, GT) → True
new_esEs8(GT, GT) → True
new_ltEs20(zzz400001, zzz3300001, app(ty_Ratio, cfe)) → new_ltEs11(zzz400001, zzz3300001, cfe)
new_esEs20(zzz4001, zzz3001, ty_Integer) → new_esEs9(zzz4001, zzz3001)
new_esEs21(zzz4002, zzz3002, ty_Double) → new_esEs16(zzz4002, zzz3002)
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_ltEs18(zzz400002, zzz3300002, ty_Ordering) → new_ltEs6(zzz400002, zzz3300002)
new_esEs11(zzz4000, zzz3000, ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_esEs7(Right(zzz4000), Right(zzz3000), gf, app(app(ty_Either, gg), gh)) → new_esEs7(zzz4000, zzz3000, gg, gh)
new_esEs12(False, False) → True
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(ty_[], bhe)) → new_ltEs10(zzz400000, zzz3300000, bhe)
new_esEs8(GT, LT) → False
new_esEs8(LT, GT) → False
new_ltEs18(zzz400002, zzz3300002, ty_Double) → new_ltEs7(zzz400002, zzz3300002)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_@0, cea) → new_ltEs5(zzz400000, zzz3300000)
new_primEqInt(Neg(Succ(zzz40000)), Neg(Succ(zzz30000))) → new_primEqNat0(zzz40000, zzz30000)
new_esEs7(Right(zzz4000), Right(zzz3000), gf, ty_Char) → new_esEs17(zzz4000, zzz3000)
new_lt14(zzz400000, zzz3300000, app(ty_[], bb)) → new_lt4(zzz400000, zzz3300000, bb)
new_esEs20(zzz4001, zzz3001, ty_Ordering) → new_esEs8(zzz4001, zzz3001)
new_esEs23(zzz400001, zzz3300001, ty_Ordering) → new_esEs8(zzz400001, zzz3300001)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_compare27(Just(zzz40000), Nothing, False, bba) → GT
new_primCompAux1(zzz400000, zzz3300000, zzz215, bg) → new_primCompAux0(zzz215, new_compare11(zzz400000, zzz3300000, bg))
new_lt14(zzz400000, zzz3300000, app(ty_Ratio, bd)) → new_lt5(zzz400000, zzz3300000, bd)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdh, app(app(app(ty_@3, dad), dae), daf)) → new_ltEs13(zzz400000, zzz3300000, dad, dae, daf)
new_esEs7(Right(zzz4000), Right(zzz3000), gf, app(ty_Ratio, ha)) → new_esEs13(zzz4000, zzz3000, ha)
new_ltEs19(zzz40000, zzz330000, ty_Float) → new_ltEs9(zzz40000, zzz330000)
new_compare27(Nothing, Nothing, False, bba) → LT
new_esEs25(zzz4001, zzz3001, ty_Int) → new_esEs18(zzz4001, zzz3001)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Char) → new_ltEs17(zzz400000, zzz3300000)
new_primEqInt(Neg(Zero), Neg(Zero)) → True
new_esEs7(Left(zzz4000), Left(zzz3000), app(ty_Ratio, ff), fb) → new_esEs13(zzz4000, zzz3000, ff)
new_esEs7(Left(zzz4000), Left(zzz3000), app(app(ty_@2, gd), ge), fb) → new_esEs6(zzz4000, zzz3000, gd, ge)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdh, ty_Double) → new_ltEs7(zzz400000, zzz3300000)
new_ltEs6(EQ, EQ) → True
new_esEs11(zzz4000, zzz3000, app(app(app(ty_@3, ed), ee), ef)) → new_esEs5(zzz4000, zzz3000, ed, ee, ef)
new_esEs11(zzz4000, zzz3000, ty_Float) → new_esEs15(zzz4000, zzz3000)
new_primEqInt(Neg(Zero), Neg(Succ(zzz30000))) → False
new_primEqInt(Neg(Succ(zzz40000)), Neg(Zero)) → False
new_primCompAux0(zzz220, GT) → GT
new_ltEs17(zzz40000, zzz330000) → new_fsEs(new_compare19(zzz40000, zzz330000))
new_esEs8(EQ, EQ) → True
new_compare26(zzz400000, zzz3300000, True, baa, bab) → EQ
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Bool, cea) → new_ltEs14(zzz400000, zzz3300000)
new_ltEs6(GT, GT) → True
new_esEs24(zzz4000, zzz3000, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_compare24(zzz400000, zzz3300000, True, be, bf) → EQ
new_ltEs13(@3(zzz400000, zzz400001, zzz400002), @3(zzz3300000, zzz3300001, zzz3300002), bed, bee, bef) → new_pePe(new_lt14(zzz400000, zzz3300000, bed), new_asAs(new_esEs22(zzz400000, zzz3300000, bed), new_pePe(new_lt13(zzz400001, zzz3300001, bee), new_asAs(new_esEs23(zzz400001, zzz3300001, bee), new_ltEs18(zzz400002, zzz3300002, bef)))))
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(ty_Maybe, cha), cea) → new_ltEs8(zzz400000, zzz3300000, cha)
new_ltEs19(zzz40000, zzz330000, ty_Char) → new_ltEs17(zzz40000, zzz330000)
new_esEs22(zzz400000, zzz3300000, app(app(app(ty_@3, dc), dd), de)) → new_esEs5(zzz400000, zzz3300000, dc, dd, de)
new_compare([], [], bg) → EQ
new_compare11(zzz400000, zzz3300000, app(app(ty_@2, cf), cg)) → new_compare16(zzz400000, zzz3300000, cf, cg)
new_esEs26(zzz400000, zzz3300000, app(app(ty_Either, cfb), cfc)) → new_esEs7(zzz400000, zzz3300000, cfb, cfc)
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_esEs10([], :(zzz3000, zzz3001), dg) → False
new_esEs10(:(zzz4000, zzz4001), [], dg) → False
new_ltEs19(zzz40000, zzz330000, ty_Double) → new_ltEs7(zzz40000, zzz330000)
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_esEs4(Just(zzz4000), Just(zzz3000), app(app(ty_Either, dbd), dbe)) → new_esEs7(zzz4000, zzz3000, dbd, dbe)
new_esEs9(Integer(zzz4000), Integer(zzz3000)) → new_primEqInt(zzz4000, zzz3000)
new_esEs7(Right(zzz4000), Right(zzz3000), gf, app(app(ty_@2, hg), hh)) → new_esEs6(zzz4000, zzz3000, hg, hh)
new_esEs22(zzz400000, zzz3300000, app(ty_Maybe, beg)) → new_esEs4(zzz400000, zzz3300000, beg)
new_esEs25(zzz4001, zzz3001, app(ty_Maybe, ccf)) → new_esEs4(zzz4001, zzz3001, ccf)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Int) → new_esEs18(zzz4000, zzz3000)
new_primEqInt(Pos(Succ(zzz40000)), Pos(Succ(zzz30000))) → new_primEqNat0(zzz40000, zzz30000)
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(ty_Ratio, bhf)) → new_ltEs11(zzz400000, zzz3300000, bhf)
new_compare10(zzz400000, zzz3300000, False, be, bf) → GT
new_esEs6(@2(zzz4000, zzz4001), @2(zzz3000, zzz3001), cag, cah) → new_asAs(new_esEs24(zzz4000, zzz3000, cag), new_esEs25(zzz4001, zzz3001, cah))
new_compare11(zzz400000, zzz3300000, app(ty_Ratio, ca)) → new_compare5(zzz400000, zzz3300000, ca)
new_ltEs19(zzz40000, zzz330000, ty_Bool) → new_ltEs14(zzz40000, zzz330000)
new_ltEs18(zzz400002, zzz3300002, app(app(ty_Either, bhb), bhc)) → new_ltEs15(zzz400002, zzz3300002, bhb, bhc)
new_esEs23(zzz400001, zzz3300001, ty_Char) → new_esEs17(zzz400001, zzz3300001)
new_esEs10([], [], dg) → True
new_esEs24(zzz4000, zzz3000, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_lt14(zzz400000, zzz3300000, ty_Double) → new_lt19(zzz400000, zzz3300000)
new_primEqNat0(Succ(zzz40000), Succ(zzz30000)) → new_primEqNat0(zzz40000, zzz30000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Int, cea) → new_ltEs12(zzz400000, zzz3300000)
new_ltEs14(False, False) → True
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Integer, fb) → new_esEs9(zzz4000, zzz3000)
new_esEs19(zzz4000, zzz3000, app(app(ty_@2, bbf), bbg)) → new_esEs6(zzz4000, zzz3000, bbf, bbg)
new_esEs4(Just(zzz4000), Just(zzz3000), app(app(app(ty_@3, dbh), dca), dcb)) → new_esEs5(zzz4000, zzz3000, dbh, dca, dcb)
new_esEs22(zzz400000, zzz3300000, ty_Bool) → new_esEs12(zzz400000, zzz3300000)
new_compare6(Double(zzz400000, zzz400001), Double(zzz3300000, zzz3300001)) → new_compare7(new_sr(zzz400000, zzz3300000), new_sr(zzz400001, zzz3300001))
new_lt11(zzz400000, zzz3300000) → new_esEs8(new_compare15(zzz400000, zzz3300000), LT)
new_compare114(zzz400000, zzz3300000, True, baa, bab) → LT
new_esEs24(zzz4000, zzz3000, ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_ltEs8(Just(zzz400000), Nothing, bhd) → False
new_esEs20(zzz4001, zzz3001, ty_Float) → new_esEs15(zzz4001, zzz3001)
new_compare5(:%(zzz400000, zzz400001), :%(zzz3300000, zzz3300001), ty_Integer) → new_compare18(new_sr0(zzz400000, zzz3300001), new_sr0(zzz3300000, zzz400001))
new_esEs11(zzz4000, zzz3000, app(ty_Maybe, ec)) → new_esEs4(zzz4000, zzz3000, ec)
new_compare24(zzz400000, zzz3300000, False, be, bf) → new_compare10(zzz400000, zzz3300000, new_ltEs4(zzz400000, zzz3300000, be, bf), be, bf)
new_compare19(Char(zzz400000), Char(zzz3300000)) → new_primCmpNat0(zzz400000, zzz3300000)
new_lt20(zzz400000, zzz3300000, app(ty_Ratio, cec)) → new_lt5(zzz400000, zzz3300000, cec)
new_esEs8(EQ, LT) → False
new_esEs8(LT, EQ) → False
new_primEqInt(Pos(Zero), Pos(Succ(zzz30000))) → False
new_primEqInt(Pos(Succ(zzz40000)), Pos(Zero)) → False
new_esEs24(zzz4000, zzz3000, ty_Float) → new_esEs15(zzz4000, zzz3000)
new_primCmpNat0(Zero, Zero) → EQ
new_lt14(zzz400000, zzz3300000, app(app(app(ty_@3, dc), dd), de)) → new_lt8(zzz400000, zzz3300000, dc, dd, de)
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_esEs19(zzz4000, zzz3000, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_compare11(zzz400000, zzz3300000, ty_Char) → new_compare19(zzz400000, zzz3300000)
new_lt12(zzz400000, zzz3300000) → new_esEs8(new_compare19(zzz400000, zzz3300000), LT)
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_compare9(@0, @0) → EQ
new_esEs21(zzz4002, zzz3002, ty_Float) → new_esEs15(zzz4002, zzz3002)
new_esEs22(zzz400000, zzz3300000, app(ty_Ratio, bd)) → new_esEs13(zzz400000, zzz3300000, bd)
new_esEs27(zzz4000, zzz3000, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_sr0(Integer(zzz33000000), Integer(zzz4000010)) → Integer(new_primMulInt(zzz33000000, zzz4000010))
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primEqInt(Neg(Succ(zzz40000)), Pos(zzz3000)) → False
new_primEqInt(Pos(Succ(zzz40000)), Neg(zzz3000)) → False
new_esEs24(zzz4000, zzz3000, app(ty_Ratio, cbc)) → new_esEs13(zzz4000, zzz3000, cbc)
new_esEs4(Just(zzz4000), Just(zzz3000), app(app(ty_@2, dcd), dce)) → new_esEs6(zzz4000, zzz3000, dcd, dce)
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Float, fb) → new_esEs15(zzz4000, zzz3000)
new_compare18(Integer(zzz400000), Integer(zzz3300000)) → new_primCmpInt(zzz400000, zzz3300000)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Ordering) → new_ltEs6(zzz400000, zzz3300000)
new_esEs22(zzz400000, zzz3300000, app(app(ty_@2, be), bf)) → new_esEs6(zzz400000, zzz3300000, be, bf)
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primEqInt(Neg(Zero), Pos(Succ(zzz30000))) → False
new_primEqInt(Pos(Zero), Neg(Succ(zzz30000))) → False
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Float) → new_ltEs9(zzz400000, zzz3300000)
new_lt8(zzz400000, zzz3300000, dc, dd, de) → new_esEs8(new_compare14(zzz400000, zzz3300000, dc, dd, de), LT)
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_ltEs18(zzz400002, zzz3300002, app(ty_Ratio, bgc)) → new_ltEs11(zzz400002, zzz3300002, bgc)
new_esEs7(Right(zzz4000), Right(zzz3000), gf, app(ty_Maybe, hb)) → new_esEs4(zzz4000, zzz3000, hb)
new_esEs25(zzz4001, zzz3001, ty_@0) → new_esEs14(zzz4001, zzz3001)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdh, ty_Char) → new_ltEs17(zzz400000, zzz3300000)
new_compare11(zzz400000, zzz3300000, app(app(app(ty_@3, cc), cd), ce)) → new_compare14(zzz400000, zzz3300000, cc, cd, ce)
new_esEs23(zzz400001, zzz3300001, ty_Int) → new_esEs18(zzz400001, zzz3300001)
new_ltEs5(zzz40000, zzz330000) → new_fsEs(new_compare9(zzz40000, zzz330000))
new_esEs25(zzz4001, zzz3001, ty_Float) → new_esEs15(zzz4001, zzz3001)
new_esEs8(GT, EQ) → False
new_esEs8(EQ, GT) → False
new_compare13(zzz4000, zzz33000, bba) → new_compare27(zzz4000, zzz33000, new_esEs4(zzz4000, zzz33000, bba), bba)
new_esEs16(Double(zzz4000, zzz4001), Double(zzz3000, zzz3001)) → new_esEs18(new_sr(zzz4000, zzz3000), new_sr(zzz4001, zzz3001))
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Float) → new_esEs15(zzz4000, zzz3000)
new_ltEs19(zzz40000, zzz330000, app(app(app(ty_@3, bed), bee), bef)) → new_ltEs13(zzz40000, zzz330000, bed, bee, bef)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_lt20(zzz400000, zzz3300000, ty_@0) → new_lt16(zzz400000, zzz3300000)
new_esEs10(:(zzz4000, zzz4001), :(zzz3000, zzz3001), dg) → new_asAs(new_esEs11(zzz4000, zzz3000, dg), new_esEs10(zzz4001, zzz3001, dg))
new_primCompAux0(zzz220, LT) → LT
new_esEs7(Right(zzz4000), Right(zzz3000), gf, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_@0) → new_ltEs5(zzz400000, zzz3300000)
new_lt13(zzz400001, zzz3300001, ty_Bool) → new_lt11(zzz400001, zzz3300001)
new_compare16(zzz400000, zzz3300000, be, bf) → new_compare24(zzz400000, zzz3300000, new_esEs6(zzz400000, zzz3300000, be, bf), be, bf)
new_compare11(zzz400000, zzz3300000, ty_Double) → new_compare6(zzz400000, zzz3300000)
new_compare113(zzz400000, zzz3300000, True) → LT
new_compare114(zzz400000, zzz3300000, False, baa, bab) → GT
new_not(False) → True
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Int, fb) → new_esEs18(zzz4000, zzz3000)
new_compare110(zzz195, zzz196, True, df) → LT
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Double, fb) → new_esEs16(zzz4000, zzz3000)
new_lt16(zzz400000, zzz3300000) → new_esEs8(new_compare9(zzz400000, zzz3300000), LT)
new_ltEs19(zzz40000, zzz330000, app(ty_[], bg)) → new_ltEs10(zzz40000, zzz330000, bg)
new_lt13(zzz400001, zzz3300001, ty_Integer) → new_lt7(zzz400001, zzz3300001)
new_esEs23(zzz400001, zzz3300001, app(app(ty_@2, bff), bfg)) → new_esEs6(zzz400001, zzz3300001, bff, bfg)
new_esEs19(zzz4000, zzz3000, ty_Char) → new_esEs17(zzz4000, zzz3000)
new_compare113(zzz400000, zzz3300000, False) → GT
new_esEs7(Right(zzz4000), Right(zzz3000), gf, ty_@0) → new_esEs14(zzz4000, zzz3000)
new_esEs26(zzz400000, zzz3300000, ty_Int) → new_esEs18(zzz400000, zzz3300000)
new_esEs11(zzz4000, zzz3000, ty_Double) → new_esEs16(zzz4000, zzz3000)
new_esEs11(zzz4000, zzz3000, ty_@0) → new_esEs14(zzz4000, zzz3000)
new_lt13(zzz400001, zzz3300001, app(ty_Ratio, bfa)) → new_lt5(zzz400001, zzz3300001, bfa)
new_esEs23(zzz400001, zzz3300001, app(ty_[], beh)) → new_esEs10(zzz400001, zzz3300001, beh)
new_ltEs19(zzz40000, zzz330000, app(app(ty_Either, cdh), cea)) → new_ltEs15(zzz40000, zzz330000, cdh, cea)
new_esEs19(zzz4000, zzz3000, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_compare28(zzz400000, zzz3300000, True) → EQ
new_lt13(zzz400001, zzz3300001, app(app(ty_@2, bff), bfg)) → new_lt17(zzz400001, zzz3300001, bff, bfg)
new_esEs20(zzz4001, zzz3001, ty_Int) → new_esEs18(zzz4001, zzz3001)
new_esEs20(zzz4001, zzz3001, app(app(app(ty_@3, bcd), bce), bcf)) → new_esEs5(zzz4001, zzz3001, bcd, bce, bcf)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_esEs21(zzz4002, zzz3002, app(app(app(ty_@3, bdf), bdg), bdh)) → new_esEs5(zzz4002, zzz3002, bdf, bdg, bdh)
new_lt14(zzz400000, zzz3300000, ty_Int) → new_lt9(zzz400000, zzz3300000)
new_esEs7(Right(zzz4000), Right(zzz3000), gf, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_ltEs18(zzz400002, zzz3300002, ty_Float) → new_ltEs9(zzz400002, zzz3300002)
new_esEs5(@3(zzz4000, zzz4001, zzz4002), @3(zzz3000, zzz3001, zzz3002), bac, bad, bae) → new_asAs(new_esEs19(zzz4000, zzz3000, bac), new_asAs(new_esEs20(zzz4001, zzz3001, bad), new_esEs21(zzz4002, zzz3002, bae)))
new_esEs7(Left(zzz4000), Left(zzz3000), ty_@0, fb) → new_esEs14(zzz4000, zzz3000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(app(app(ty_@3, chb), chc), chd), cea) → new_ltEs13(zzz400000, zzz3300000, chb, chc, chd)
new_ltEs19(zzz40000, zzz330000, app(ty_Maybe, bhd)) → new_ltEs8(zzz40000, zzz330000, bhd)
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primEqNat0(Succ(zzz40000), Zero) → False
new_primEqNat0(Zero, Succ(zzz30000)) → False
new_ltEs19(zzz40000, zzz330000, ty_Int) → new_ltEs12(zzz40000, zzz330000)
new_ltEs6(LT, LT) → True
new_lt20(zzz400000, zzz3300000, app(app(ty_Either, cfb), cfc)) → new_lt18(zzz400000, zzz3300000, cfb, cfc)
new_ltEs6(EQ, LT) → False
new_esEs20(zzz4001, zzz3001, app(ty_[], bcg)) → new_esEs10(zzz4001, zzz3001, bcg)
new_ltEs14(True, True) → True
new_primEqInt(Pos(Zero), Pos(Zero)) → True
new_ltEs12(zzz40000, zzz330000) → new_fsEs(new_compare7(zzz40000, zzz330000))
new_esEs4(Nothing, Nothing, dbc) → True
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Char, fb) → new_esEs17(zzz4000, zzz3000)
new_esEs4(Just(zzz4000), Just(zzz3000), app(ty_Ratio, dbf)) → new_esEs13(zzz4000, zzz3000, dbf)
new_esEs11(zzz4000, zzz3000, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_lt14(zzz400000, zzz3300000, ty_Bool) → new_lt11(zzz400000, zzz3300000)
new_lt18(zzz400000, zzz3300000, baa, bab) → new_esEs8(new_compare17(zzz400000, zzz3300000, baa, bab), LT)
new_esEs21(zzz4002, zzz3002, app(app(ty_Either, bdb), bdc)) → new_esEs7(zzz4002, zzz3002, bdb, bdc)
new_ltEs18(zzz400002, zzz3300002, app(app(app(ty_@3, bge), bgf), bgg)) → new_ltEs13(zzz400002, zzz3300002, bge, bgf, bgg)
new_lt13(zzz400001, zzz3300001, app(ty_Maybe, bfb)) → new_lt15(zzz400001, zzz3300001, bfb)
new_lt13(zzz400001, zzz3300001, ty_Double) → new_lt19(zzz400001, zzz3300001)
new_ltEs20(zzz400001, zzz3300001, ty_@0) → new_ltEs5(zzz400001, zzz3300001)
new_compare112(zzz400000, zzz3300000, True, dc, dd, de) → LT
new_esEs21(zzz4002, zzz3002, ty_Char) → new_esEs17(zzz4002, zzz3002)
new_lt10(zzz400000, zzz3300000) → new_esEs8(new_compare12(zzz400000, zzz3300000), LT)
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_compare110(zzz195, zzz196, False, df) → GT
new_ltEs20(zzz400001, zzz3300001, ty_Int) → new_ltEs12(zzz400001, zzz3300001)
new_lt14(zzz400000, zzz3300000, app(app(ty_@2, be), bf)) → new_lt17(zzz400000, zzz3300000, be, bf)
new_ltEs20(zzz400001, zzz3300001, app(app(app(ty_@3, cfg), cfh), cga)) → new_ltEs13(zzz400001, zzz3300001, cfg, cfh, cga)
new_esEs26(zzz400000, zzz3300000, ty_@0) → new_esEs14(zzz400000, zzz3300000)
new_esEs11(zzz4000, zzz3000, app(app(ty_Either, dh), ea)) → new_esEs7(zzz4000, zzz3000, dh, ea)
new_lt14(zzz400000, zzz3300000, app(ty_Maybe, beg)) → new_lt15(zzz400000, zzz3300000, beg)
new_ltEs18(zzz400002, zzz3300002, app(ty_[], bgb)) → new_ltEs10(zzz400002, zzz3300002, bgb)
new_esEs24(zzz4000, zzz3000, app(ty_[], cbh)) → new_esEs10(zzz4000, zzz3000, cbh)
new_esEs21(zzz4002, zzz3002, app(ty_Maybe, bde)) → new_esEs4(zzz4002, zzz3002, bde)
new_compare11(zzz400000, zzz3300000, ty_@0) → new_compare9(zzz400000, zzz3300000)
new_esEs20(zzz4001, zzz3001, app(app(ty_Either, bbh), bca)) → new_esEs7(zzz4001, zzz3001, bbh, bca)
new_ltEs20(zzz400001, zzz3300001, app(app(ty_Either, cgd), cge)) → new_ltEs15(zzz400001, zzz3300001, cgd, cge)
new_esEs23(zzz400001, zzz3300001, ty_@0) → new_esEs14(zzz400001, zzz3300001)
new_esEs11(zzz4000, zzz3000, app(app(ty_@2, eh), fa)) → new_esEs6(zzz4000, zzz3000, eh, fa)
new_esEs28(zzz4001, zzz3001, ty_Integer) → new_esEs9(zzz4001, zzz3001)
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs25(zzz4001, zzz3001, ty_Bool) → new_esEs12(zzz4001, zzz3001)
new_esEs21(zzz4002, zzz3002, ty_@0) → new_esEs14(zzz4002, zzz3002)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdh, app(ty_[], daa)) → new_ltEs10(zzz400000, zzz3300000, daa)
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(ty_Maybe, bhg)) → new_ltEs8(zzz400000, zzz3300000, bhg)
new_esEs19(zzz4000, zzz3000, ty_Double) → new_esEs16(zzz4000, zzz3000)
new_esEs13(:%(zzz4000, zzz4001), :%(zzz3000, zzz3001), cgf) → new_asAs(new_esEs27(zzz4000, zzz3000, cgf), new_esEs28(zzz4001, zzz3001, cgf))
new_lt14(zzz400000, zzz3300000, ty_Float) → new_lt10(zzz400000, zzz3300000)
new_asAs(False, zzz202) → False
new_lt20(zzz400000, zzz3300000, ty_Double) → new_lt19(zzz400000, zzz3300000)
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdh, ty_Ordering) → new_ltEs6(zzz400000, zzz3300000)
new_compare14(zzz400000, zzz3300000, dc, dd, de) → new_compare25(zzz400000, zzz3300000, new_esEs5(zzz400000, zzz3300000, dc, dd, de), dc, dd, de)
new_esEs21(zzz4002, zzz3002, ty_Ordering) → new_esEs8(zzz4002, zzz3002)
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(app(ty_@2, cac), cad)) → new_ltEs4(zzz400000, zzz3300000, cac, cad)
new_compare11(zzz400000, zzz3300000, ty_Bool) → new_compare15(zzz400000, zzz3300000)
new_esEs22(zzz400000, zzz3300000, app(ty_[], bb)) → new_esEs10(zzz400000, zzz3300000, bb)
new_ltEs16(zzz40000, zzz330000) → new_fsEs(new_compare18(zzz40000, zzz330000))
new_lt20(zzz400000, zzz3300000, app(ty_[], ceb)) → new_lt4(zzz400000, zzz3300000, ceb)
new_lt19(zzz400000, zzz3300000) → new_esEs8(new_compare6(zzz400000, zzz3300000), LT)
new_esEs23(zzz400001, zzz3300001, ty_Float) → new_esEs15(zzz400001, zzz3300001)
new_ltEs18(zzz400002, zzz3300002, ty_Bool) → new_ltEs14(zzz400002, zzz3300002)
new_esEs21(zzz4002, zzz3002, ty_Integer) → new_esEs9(zzz4002, zzz3002)
new_compare11(zzz400000, zzz3300000, app(app(ty_Either, da), db)) → new_compare17(zzz400000, zzz3300000, da, db)
new_compare25(zzz400000, zzz3300000, False, dc, dd, de) → new_compare112(zzz400000, zzz3300000, new_ltEs13(zzz400000, zzz3300000, dc, dd, de), dc, dd, de)
new_esEs26(zzz400000, zzz3300000, ty_Integer) → new_esEs9(zzz400000, zzz3300000)
new_esEs24(zzz4000, zzz3000, ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_esEs23(zzz400001, zzz3300001, ty_Double) → new_esEs16(zzz400001, zzz3300001)
new_ltEs6(LT, GT) → True
new_compare11(zzz400000, zzz3300000, ty_Ordering) → new_compare8(zzz400000, zzz3300000)
new_lt13(zzz400001, zzz3300001, ty_Ordering) → new_lt6(zzz400001, zzz3300001)
new_compare112(zzz400000, zzz3300000, False, dc, dd, de) → GT
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Double) → new_esEs16(zzz4000, zzz3000)
new_esEs12(True, False) → False
new_esEs12(False, True) → False
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdh, ty_Int) → new_ltEs12(zzz400000, zzz3300000)
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Bool, fb) → new_esEs12(zzz4000, zzz3000)
new_esEs11(zzz4000, zzz3000, app(ty_Ratio, eb)) → new_esEs13(zzz4000, zzz3000, eb)
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(ty_Ratio, cgh), cea) → new_ltEs11(zzz400000, zzz3300000, cgh)
new_compare11(zzz400000, zzz3300000, ty_Float) → new_compare12(zzz400000, zzz3300000)
new_esEs11(zzz4000, zzz3000, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_ltEs18(zzz400002, zzz3300002, app(ty_Maybe, bgd)) → new_ltEs8(zzz400002, zzz3300002, bgd)
new_ltEs14(True, False) → False
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_ltEs8(Nothing, Nothing, bhd) → True
new_esEs22(zzz400000, zzz3300000, ty_@0) → new_esEs14(zzz400000, zzz3300000)
new_esEs25(zzz4001, zzz3001, app(app(app(ty_@3, ccg), cch), cda)) → new_esEs5(zzz4001, zzz3001, ccg, cch, cda)
new_esEs15(Float(zzz4000, zzz4001), Float(zzz3000, zzz3001)) → new_esEs18(new_sr(zzz4000, zzz3000), new_sr(zzz4001, zzz3001))
new_lt20(zzz400000, zzz3300000, ty_Char) → new_lt12(zzz400000, zzz3300000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Integer, cea) → new_ltEs16(zzz400000, zzz3300000)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdh, app(app(ty_Either, dba), dbb)) → new_ltEs15(zzz400000, zzz3300000, dba, dbb)
new_compare27(zzz4000, zzz33000, True, bba) → EQ
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdh, ty_Bool) → new_ltEs14(zzz400000, zzz3300000)
new_compare28(zzz400000, zzz3300000, False) → new_compare113(zzz400000, zzz3300000, new_ltEs6(zzz400000, zzz3300000))
new_esEs22(zzz400000, zzz3300000, ty_Double) → new_esEs16(zzz400000, zzz3300000)
new_gt(zzz330, zzz3440, bc) → new_esEs8(new_compare13(zzz330, zzz3440, bc), GT)
new_esEs20(zzz4001, zzz3001, ty_Char) → new_esEs17(zzz4001, zzz3001)
new_ltEs7(zzz40000, zzz330000) → new_fsEs(new_compare6(zzz40000, zzz330000))
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdh, app(ty_Ratio, dab)) → new_ltEs11(zzz400000, zzz3300000, dab)
new_primPlusNat1(Zero, Zero) → Zero
new_ltEs6(LT, EQ) → True
new_ltEs6(GT, LT) → False
new_asAs(True, zzz202) → zzz202
new_esEs26(zzz400000, zzz3300000, app(app(app(ty_@3, cee), cef), ceg)) → new_esEs5(zzz400000, zzz3300000, cee, cef, ceg)
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_esEs11(zzz4000, zzz3000, ty_Char) → new_esEs17(zzz4000, zzz3000)
new_esEs11(zzz4000, zzz3000, app(ty_[], eg)) → new_esEs10(zzz4000, zzz3000, eg)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Integer) → new_ltEs16(zzz400000, zzz3300000)
new_compare8(zzz400000, zzz3300000) → new_compare28(zzz400000, zzz3300000, new_esEs8(zzz400000, zzz3300000))
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdh, ty_Integer) → new_ltEs16(zzz400000, zzz3300000)
new_lt13(zzz400001, zzz3300001, ty_@0) → new_lt16(zzz400001, zzz3300001)
new_fsEs(zzz205) → new_not(new_esEs8(zzz205, GT))
new_ltEs20(zzz400001, zzz3300001, ty_Float) → new_ltEs9(zzz400001, zzz3300001)
new_esEs26(zzz400000, zzz3300000, app(app(ty_@2, ceh), cfa)) → new_esEs6(zzz400000, zzz3300000, ceh, cfa)
new_esEs23(zzz400001, zzz3300001, app(app(app(ty_@3, bfc), bfd), bfe)) → new_esEs5(zzz400001, zzz3300001, bfc, bfd, bfe)
new_lt20(zzz400000, zzz3300000, ty_Int) → new_lt9(zzz400000, zzz3300000)
new_esEs19(zzz4000, zzz3000, ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_esEs26(zzz400000, zzz3300000, ty_Double) → new_esEs16(zzz400000, zzz3300000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(app(ty_Either, chg), chh), cea) → new_ltEs15(zzz400000, zzz3300000, chg, chh)
new_ltEs15(Left(zzz400000), Right(zzz3300000), cdh, cea) → True
new_ltEs18(zzz400002, zzz3300002, app(app(ty_@2, bgh), bha)) → new_ltEs4(zzz400002, zzz3300002, bgh, bha)
new_ltEs20(zzz400001, zzz3300001, ty_Ordering) → new_ltEs6(zzz400001, zzz3300001)
new_lt17(zzz400000, zzz3300000, be, bf) → new_esEs8(new_compare16(zzz400000, zzz3300000, be, bf), LT)
new_compare5(:%(zzz400000, zzz400001), :%(zzz3300000, zzz3300001), ty_Int) → new_compare7(new_sr(zzz400000, zzz3300001), new_sr(zzz3300000, zzz400001))
new_esEs21(zzz4002, zzz3002, ty_Bool) → new_esEs12(zzz4002, zzz3002)
new_lt5(zzz400000, zzz3300000, bd) → new_esEs8(new_compare5(zzz400000, zzz3300000, bd), LT)
new_esEs25(zzz4001, zzz3001, app(app(ty_Either, ccc), ccd)) → new_esEs7(zzz4001, zzz3001, ccc, ccd)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCompAux0(zzz220, EQ) → zzz220
new_ltEs15(Right(zzz400000), Left(zzz3300000), cdh, cea) → False
new_compare29(zzz400000, zzz3300000, False) → new_compare111(zzz400000, zzz3300000, new_ltEs14(zzz400000, zzz3300000))
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(app(ty_@2, che), chf), cea) → new_ltEs4(zzz400000, zzz3300000, che, chf)
new_ltEs20(zzz400001, zzz3300001, ty_Char) → new_ltEs17(zzz400001, zzz3300001)
new_primEqInt(Neg(Zero), Pos(Zero)) → True
new_primEqInt(Pos(Zero), Neg(Zero)) → True
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Float, cea) → new_ltEs9(zzz400000, zzz3300000)
new_not(True) → False
new_esEs25(zzz4001, zzz3001, ty_Integer) → new_esEs9(zzz4001, zzz3001)

The set Q consists of the following terms:

new_esEs19(x0, x1, ty_Integer)
new_esEs24(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs24(x0, x1, ty_Ordering)
new_ltEs15(Left(x0), Left(x1), ty_Double, x2)
new_ltEs18(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs15(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_lt14(x0, x1, ty_Double)
new_ltEs8(Just(x0), Just(x1), ty_Int)
new_esEs10([], :(x0, x1), x2)
new_esEs19(x0, x1, app(ty_[], x2))
new_ltEs15(Left(x0), Left(x1), ty_Bool, x2)
new_lt5(x0, x1, x2)
new_ltEs18(x0, x1, app(ty_Ratio, x2))
new_esEs23(x0, x1, app(ty_[], x2))
new_esEs19(x0, x1, app(ty_Ratio, x2))
new_primPlusNat0(Succ(x0), x1)
new_esEs11(x0, x1, ty_@0)
new_ltEs15(Left(x0), Left(x1), ty_Integer, x2)
new_primPlusNat0(Zero, x0)
new_esEs21(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_pePe(True, x0)
new_ltEs19(x0, x1, ty_Int)
new_asAs(True, x0)
new_ltEs15(Left(x0), Left(x1), ty_Ordering, x2)
new_lt13(x0, x1, ty_Ordering)
new_ltEs19(x0, x1, app(app(ty_@2, x2), x3))
new_compare11(x0, x1, app(app(ty_Either, x2), x3))
new_esEs12(False, False)
new_ltEs8(Just(x0), Just(x1), ty_Integer)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_esEs11(x0, x1, app(ty_Maybe, x2))
new_ltEs15(Right(x0), Right(x1), x2, ty_Ordering)
new_lt11(x0, x1)
new_compare111(x0, x1, False)
new_esEs22(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare114(x0, x1, False, x2, x3)
new_esEs23(x0, x1, app(app(ty_@2, x2), x3))
new_esEs20(x0, x1, ty_Bool)
new_esEs26(x0, x1, ty_Int)
new_compare15(x0, x1)
new_lt14(x0, x1, ty_Ordering)
new_esEs26(x0, x1, ty_Double)
new_esEs24(x0, x1, ty_@0)
new_primEqInt(Neg(Succ(x0)), Neg(Zero))
new_compare19(Char(x0), Char(x1))
new_primPlusNat1(Succ(x0), Zero)
new_compare28(x0, x1, False)
new_esEs22(x0, x1, ty_Integer)
new_compare6(Double(x0, x1), Double(x2, x3))
new_ltEs15(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_esEs4(Just(x0), Just(x1), ty_Bool)
new_compare25(x0, x1, True, x2, x3, x4)
new_esEs11(x0, x1, ty_Float)
new_primCompAux0(x0, LT)
new_ltEs14(True, False)
new_ltEs14(False, True)
new_esEs26(x0, x1, app(ty_Ratio, x2))
new_esEs22(x0, x1, app(ty_[], x2))
new_lt14(x0, x1, app(ty_Maybe, x2))
new_esEs8(GT, GT)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs7(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_lt14(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs7(Right(x0), Left(x1), x2, x3)
new_esEs7(Left(x0), Right(x1), x2, x3)
new_lt10(x0, x1)
new_compare26(x0, x1, True, x2, x3)
new_primEqInt(Pos(Succ(x0)), Neg(x1))
new_primEqInt(Neg(Succ(x0)), Pos(x1))
new_compare14(x0, x1, x2, x3, x4)
new_ltEs15(Right(x0), Left(x1), x2, x3)
new_ltEs15(Left(x0), Right(x1), x2, x3)
new_esEs23(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs8(LT, LT)
new_lt20(x0, x1, ty_Double)
new_compare10(x0, x1, False, x2, x3)
new_esEs21(x0, x1, app(ty_[], x2))
new_esEs20(x0, x1, app(ty_Ratio, x2))
new_esEs19(x0, x1, ty_Int)
new_esEs25(x0, x1, app(app(ty_Either, x2), x3))
new_esEs7(Left(x0), Left(x1), app(ty_[], x2), x3)
new_esEs4(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_esEs25(x0, x1, app(ty_[], x2))
new_ltEs7(x0, x1)
new_esEs4(Just(x0), Just(x1), app(ty_[], x2))
new_compare11(x0, x1, ty_@0)
new_primEqInt(Pos(Succ(x0)), Pos(Zero))
new_lt13(x0, x1, ty_Double)
new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_lt13(x0, x1, ty_@0)
new_ltEs6(EQ, EQ)
new_lt20(x0, x1, ty_Integer)
new_ltEs8(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_ltEs18(x0, x1, ty_Int)
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_lt14(x0, x1, ty_Int)
new_lt20(x0, x1, app(ty_[], x2))
new_compare27(Just(x0), Just(x1), False, x2)
new_compare([], [], x0)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs25(x0, x1, app(ty_Ratio, x2))
new_ltEs6(LT, EQ)
new_ltEs6(EQ, LT)
new_lt7(x0, x1)
new_esEs11(x0, x1, ty_Integer)
new_esEs20(x0, x1, ty_Float)
new_lt9(x0, x1)
new_primCmpNat0(Succ(x0), Zero)
new_primEqNat0(Zero, Zero)
new_compare110(x0, x1, False, x2)
new_esEs18(x0, x1)
new_esEs19(x0, x1, ty_Ordering)
new_lt20(x0, x1, ty_Ordering)
new_esEs19(x0, x1, ty_Char)
new_esEs22(x0, x1, ty_Char)
new_ltEs15(Right(x0), Right(x1), x2, ty_Bool)
new_esEs7(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_esEs20(x0, x1, app(app(ty_Either, x2), x3))
new_esEs7(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_lt20(x0, x1, ty_@0)
new_esEs26(x0, x1, app(app(ty_@2, x2), x3))
new_esEs19(x0, x1, app(ty_Maybe, x2))
new_esEs7(Left(x0), Left(x1), ty_Float, x2)
new_esEs23(x0, x1, ty_Char)
new_esEs4(Just(x0), Nothing, x1)
new_primMulNat0(Zero, Zero)
new_compare16(x0, x1, x2, x3)
new_ltEs18(x0, x1, app(app(ty_@2, x2), x3))
new_lt19(x0, x1)
new_esEs7(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_ltEs19(x0, x1, app(app(ty_Either, x2), x3))
new_compare11(x0, x1, ty_Int)
new_esEs4(Just(x0), Just(x1), ty_Int)
new_ltEs18(x0, x1, ty_Bool)
new_primMulNat0(Zero, Succ(x0))
new_compare11(x0, x1, ty_Double)
new_esEs13(:%(x0, x1), :%(x2, x3), x4)
new_ltEs20(x0, x1, ty_Char)
new_ltEs20(x0, x1, ty_Bool)
new_primEqInt(Pos(Zero), Neg(Succ(x0)))
new_primEqInt(Neg(Zero), Pos(Succ(x0)))
new_ltEs15(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_ltEs8(Just(x0), Just(x1), app(ty_[], x2))
new_ltEs8(Just(x0), Just(x1), ty_Double)
new_esEs4(Just(x0), Just(x1), ty_Integer)
new_primCmpNat0(Succ(x0), Succ(x1))
new_lt12(x0, x1)
new_lt14(x0, x1, ty_Char)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_ltEs8(Just(x0), Nothing, x1)
new_compare8(x0, x1)
new_lt20(x0, x1, app(ty_Maybe, x2))
new_ltEs17(x0, x1)
new_ltEs15(Left(x0), Left(x1), ty_Float, x2)
new_esEs7(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_esEs26(x0, x1, ty_Integer)
new_esEs23(x0, x1, app(app(ty_Either, x2), x3))
new_esEs24(x0, x1, app(app(ty_@2, x2), x3))
new_gt(x0, x1, x2)
new_primCompAux1(x0, x1, x2, x3)
new_esEs14(@0, @0)
new_compare12(Float(x0, x1), Float(x2, x3))
new_esEs19(x0, x1, ty_Double)
new_esEs7(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_esEs23(x0, x1, ty_@0)
new_esEs11(x0, x1, ty_Int)
new_primPlusNat1(Succ(x0), Succ(x1))
new_ltEs6(GT, LT)
new_ltEs6(LT, GT)
new_esEs7(Left(x0), Left(x1), ty_Double, x2)
new_esEs23(x0, x1, ty_Ordering)
new_ltEs19(x0, x1, ty_Integer)
new_ltEs15(Right(x0), Right(x1), x2, ty_Integer)
new_pePe(False, x0)
new_esEs7(Left(x0), Left(x1), ty_Ordering, x2)
new_lt4(x0, x1, x2)
new_esEs26(x0, x1, ty_Char)
new_ltEs8(Just(x0), Just(x1), ty_@0)
new_esEs11(x0, x1, app(ty_[], x2))
new_esEs27(x0, x1, ty_Integer)
new_compare29(x0, x1, True)
new_esEs7(Right(x0), Right(x1), x2, ty_Float)
new_compare(:(x0, x1), [], x2)
new_esEs11(x0, x1, ty_Double)
new_compare(:(x0, x1), :(x2, x3), x4)
new_ltEs18(x0, x1, ty_Char)
new_ltEs15(Left(x0), Left(x1), ty_Char, x2)
new_esEs11(x0, x1, app(ty_Ratio, x2))
new_esEs6(@2(x0, x1), @2(x2, x3), x4, x5)
new_esEs7(Right(x0), Right(x1), x2, ty_Int)
new_ltEs19(x0, x1, app(ty_Maybe, x2))
new_esEs26(x0, x1, app(ty_Maybe, x2))
new_esEs7(Left(x0), Left(x1), ty_@0, x2)
new_esEs23(x0, x1, ty_Float)
new_esEs7(Left(x0), Left(x1), ty_Int, x2)
new_primMulNat0(Succ(x0), Zero)
new_ltEs15(Left(x0), Left(x1), app(ty_[], x2), x3)
new_primEqInt(Neg(Zero), Neg(Succ(x0)))
new_compare110(x0, x1, True, x2)
new_compare112(x0, x1, False, x2, x3, x4)
new_ltEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_primPlusNat1(Zero, Zero)
new_esEs7(Left(x0), Left(x1), ty_Bool, x2)
new_ltEs18(x0, x1, ty_Integer)
new_esEs26(x0, x1, ty_Bool)
new_lt20(x0, x1, app(app(ty_Either, x2), x3))
new_esEs26(x0, x1, ty_Float)
new_lt20(x0, x1, app(ty_Ratio, x2))
new_esEs16(Double(x0, x1), Double(x2, x3))
new_esEs25(x0, x1, ty_Char)
new_ltEs19(x0, x1, ty_@0)
new_ltEs8(Nothing, Nothing, x0)
new_ltEs20(x0, x1, ty_Int)
new_ltEs15(Right(x0), Right(x1), x2, ty_Float)
new_lt14(x0, x1, app(ty_[], x2))
new_compare114(x0, x1, True, x2, x3)
new_ltEs18(x0, x1, ty_Float)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_esEs23(x0, x1, app(ty_Ratio, x2))
new_esEs7(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_compare5(:%(x0, x1), :%(x2, x3), ty_Integer)
new_esEs20(x0, x1, ty_Int)
new_ltEs20(x0, x1, app(ty_Ratio, x2))
new_esEs7(Left(x0), Left(x1), ty_Char, x2)
new_esEs4(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_esEs4(Just(x0), Just(x1), ty_Ordering)
new_lt6(x0, x1)
new_lt14(x0, x1, ty_Bool)
new_ltEs15(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_esEs21(x0, x1, ty_Char)
new_esEs21(x0, x1, ty_Double)
new_ltEs9(x0, x1)
new_esEs25(x0, x1, ty_Float)
new_compare11(x0, x1, ty_Integer)
new_lt18(x0, x1, x2, x3)
new_esEs21(x0, x1, ty_Bool)
new_primMulNat0(Succ(x0), Succ(x1))
new_lt20(x0, x1, ty_Bool)
new_compare112(x0, x1, True, x2, x3, x4)
new_compare11(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt16(x0, x1)
new_lt8(x0, x1, x2, x3, x4)
new_compare18(Integer(x0), Integer(x1))
new_esEs4(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_compare11(x0, x1, app(ty_[], x2))
new_esEs4(Nothing, Nothing, x0)
new_esEs12(True, True)
new_esEs24(x0, x1, ty_Integer)
new_esEs4(Just(x0), Just(x1), ty_Float)
new_esEs11(x0, x1, app(app(ty_Either, x2), x3))
new_esEs21(x0, x1, ty_Ordering)
new_ltEs4(@2(x0, x1), @2(x2, x3), x4, x5)
new_esEs24(x0, x1, ty_Double)
new_ltEs19(x0, x1, ty_Bool)
new_lt13(x0, x1, ty_Int)
new_ltEs15(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_lt14(x0, x1, ty_Integer)
new_ltEs18(x0, x1, ty_@0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_lt13(x0, x1, ty_Char)
new_primEqInt(Neg(Zero), Pos(Zero))
new_primEqInt(Pos(Zero), Neg(Zero))
new_esEs20(x0, x1, app(app(ty_@2, x2), x3))
new_esEs7(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_primEqNat0(Succ(x0), Succ(x1))
new_compare25(x0, x1, False, x2, x3, x4)
new_esEs24(x0, x1, ty_Char)
new_esEs26(x0, x1, app(ty_[], x2))
new_esEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs18(x0, x1, app(ty_[], x2))
new_compare11(x0, x1, app(ty_Maybe, x2))
new_lt14(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs8(Just(x0), Just(x1), ty_Float)
new_esEs26(x0, x1, ty_Ordering)
new_esEs19(x0, x1, ty_Float)
new_esEs20(x0, x1, ty_@0)
new_esEs4(Just(x0), Just(x1), app(ty_Ratio, x2))
new_compare17(x0, x1, x2, x3)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_compare11(x0, x1, ty_Ordering)
new_lt20(x0, x1, ty_Float)
new_esEs26(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs24(x0, x1, ty_Int)
new_ltEs20(x0, x1, app(ty_[], x2))
new_ltEs8(Just(x0), Just(x1), app(ty_Ratio, x2))
new_esEs24(x0, x1, app(ty_[], x2))
new_primEqInt(Neg(Zero), Neg(Zero))
new_asAs(False, x0)
new_ltEs20(x0, x1, app(ty_Maybe, x2))
new_esEs4(Just(x0), Just(x1), ty_Double)
new_esEs24(x0, x1, app(ty_Maybe, x2))
new_esEs7(Right(x0), Right(x1), x2, ty_Bool)
new_compare113(x0, x1, True)
new_esEs21(x0, x1, app(ty_Ratio, x2))
new_ltEs15(Right(x0), Right(x1), x2, ty_Double)
new_lt13(x0, x1, ty_Float)
new_primCmpNat0(Zero, Succ(x0))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_ltEs11(x0, x1, x2)
new_esEs10(:(x0, x1), [], x2)
new_esEs11(x0, x1, ty_Bool)
new_esEs22(x0, x1, ty_Double)
new_esEs4(Nothing, Just(x0), x1)
new_lt13(x0, x1, app(app(ty_@2, x2), x3))
new_esEs25(x0, x1, ty_Bool)
new_esEs11(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs15(Right(x0), Right(x1), x2, ty_@0)
new_esEs28(x0, x1, ty_Int)
new_ltEs13(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_esEs19(x0, x1, app(app(ty_@2, x2), x3))
new_esEs15(Float(x0, x1), Float(x2, x3))
new_primMulInt(Neg(x0), Neg(x1))
new_compare5(:%(x0, x1), :%(x2, x3), ty_Int)
new_esEs20(x0, x1, ty_Char)
new_ltEs19(x0, x1, ty_Char)
new_compare27(Nothing, Nothing, False, x0)
new_ltEs15(Right(x0), Right(x1), x2, ty_Int)
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_compare29(x0, x1, False)
new_esEs7(Right(x0), Right(x1), x2, ty_Char)
new_esEs20(x0, x1, ty_Double)
new_ltEs6(GT, GT)
new_lt13(x0, x1, ty_Bool)
new_esEs26(x0, x1, app(app(ty_Either, x2), x3))
new_compare11(x0, x1, app(ty_Ratio, x2))
new_esEs23(x0, x1, ty_Integer)
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_lt15(x0, x1, x2)
new_esEs22(x0, x1, app(ty_Maybe, x2))
new_esEs25(x0, x1, app(app(ty_@2, x2), x3))
new_esEs25(x0, x1, app(ty_Maybe, x2))
new_ltEs8(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_esEs4(Just(x0), Just(x1), app(ty_Maybe, x2))
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_compare27(Nothing, Just(x0), False, x1)
new_primEqInt(Pos(Zero), Pos(Succ(x0)))
new_primCmpNat0(Zero, Zero)
new_ltEs8(Just(x0), Just(x1), ty_Char)
new_esEs27(x0, x1, ty_Int)
new_ltEs6(LT, LT)
new_esEs5(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_esEs7(Right(x0), Right(x1), x2, app(ty_[], x3))
new_esEs22(x0, x1, ty_Bool)
new_primPlusNat1(Zero, Succ(x0))
new_ltEs18(x0, x1, ty_Double)
new_esEs22(x0, x1, ty_Int)
new_lt13(x0, x1, ty_Integer)
new_lt17(x0, x1, x2, x3)
new_esEs28(x0, x1, ty_Integer)
new_esEs17(Char(x0), Char(x1))
new_lt14(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs19(x0, x1, app(ty_Ratio, x2))
new_compare24(x0, x1, True, x2, x3)
new_esEs7(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_lt20(x0, x1, ty_Char)
new_lt14(x0, x1, app(ty_Ratio, x2))
new_compare([], :(x0, x1), x2)
new_esEs25(x0, x1, ty_Integer)
new_ltEs8(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_ltEs20(x0, x1, app(app(ty_@2, x2), x3))
new_esEs7(Right(x0), Right(x1), x2, ty_Ordering)
new_esEs19(x0, x1, app(app(ty_Either, x2), x3))
new_esEs23(x0, x1, ty_Double)
new_esEs4(Just(x0), Just(x1), ty_Char)
new_ltEs20(x0, x1, ty_Ordering)
new_ltEs15(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_esEs12(True, False)
new_esEs12(False, True)
new_compare28(x0, x1, True)
new_sr(x0, x1)
new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_compare9(@0, @0)
new_ltEs15(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_esEs11(x0, x1, ty_Char)
new_ltEs15(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_ltEs19(x0, x1, ty_Double)
new_fsEs(x0)
new_ltEs14(True, True)
new_esEs21(x0, x1, ty_Integer)
new_ltEs14(False, False)
new_ltEs8(Just(x0), Just(x1), app(ty_Maybe, x2))
new_ltEs8(Nothing, Just(x0), x1)
new_ltEs19(x0, x1, app(ty_[], x2))
new_esEs20(x0, x1, app(ty_[], x2))
new_compare27(Just(x0), Nothing, False, x1)
new_esEs7(Right(x0), Right(x1), x2, ty_Double)
new_lt20(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs5(x0, x1)
new_esEs25(x0, x1, ty_Int)
new_esEs11(x0, x1, ty_Ordering)
new_esEs23(x0, x1, ty_Bool)
new_ltEs20(x0, x1, ty_Float)
new_primEqNat0(Zero, Succ(x0))
new_not(True)
new_primCompAux0(x0, EQ)
new_esEs25(x0, x1, ty_Ordering)
new_lt13(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs20(x0, x1, ty_Integer)
new_esEs20(x0, x1, ty_Integer)
new_esEs26(x0, x1, ty_@0)
new_esEs24(x0, x1, app(app(ty_Either, x2), x3))
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_compare111(x0, x1, True)
new_esEs22(x0, x1, app(app(ty_Either, x2), x3))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_ltEs15(Right(x0), Right(x1), x2, app(ty_[], x3))
new_not(False)
new_esEs7(Right(x0), Right(x1), x2, ty_Integer)
new_ltEs15(Right(x0), Right(x1), x2, ty_Char)
new_esEs21(x0, x1, ty_@0)
new_esEs24(x0, x1, app(ty_Ratio, x2))
new_esEs10(:(x0, x1), :(x2, x3), x4)
new_esEs10([], [], x0)
new_ltEs6(EQ, GT)
new_ltEs6(GT, EQ)
new_compare26(x0, x1, False, x2, x3)
new_lt13(x0, x1, app(ty_Maybe, x2))
new_compare10(x0, x1, True, x2, x3)
new_lt14(x0, x1, ty_Float)
new_esEs21(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs15(Left(x0), Left(x1), ty_@0, x2)
new_lt13(x0, x1, app(ty_Ratio, x2))
new_ltEs20(x0, x1, ty_@0)
new_esEs22(x0, x1, app(ty_Ratio, x2))
new_esEs23(x0, x1, ty_Int)
new_ltEs19(x0, x1, ty_Ordering)
new_esEs24(x0, x1, ty_Bool)
new_ltEs15(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_compare27(x0, x1, True, x2)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_esEs11(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare11(x0, x1, app(app(ty_@2, x2), x3))
new_lt14(x0, x1, ty_@0)
new_esEs19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs8(Just(x0), Just(x1), ty_Ordering)
new_esEs4(Just(x0), Just(x1), ty_@0)
new_esEs25(x0, x1, ty_Double)
new_esEs25(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs22(x0, x1, app(app(ty_@2, x2), x3))
new_esEs21(x0, x1, app(ty_Maybe, x2))
new_esEs7(Right(x0), Right(x1), x2, ty_@0)
new_compare7(x0, x1)
new_esEs24(x0, x1, ty_Float)
new_ltEs10(x0, x1, x2)
new_esEs21(x0, x1, app(app(ty_@2, x2), x3))
new_esEs19(x0, x1, ty_Bool)
new_esEs25(x0, x1, ty_@0)
new_esEs23(x0, x1, app(ty_Maybe, x2))
new_lt20(x0, x1, ty_Int)
new_sr0(Integer(x0), Integer(x1))
new_esEs20(x0, x1, ty_Ordering)
new_compare11(x0, x1, ty_Char)
new_primEqInt(Pos(Zero), Pos(Zero))
new_esEs22(x0, x1, ty_Ordering)
new_esEs21(x0, x1, ty_Int)
new_primCompAux0(x0, GT)
new_compare13(x0, x1, x2)
new_ltEs18(x0, x1, ty_Ordering)
new_esEs9(Integer(x0), Integer(x1))
new_esEs7(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_ltEs18(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs19(x0, x1, ty_@0)
new_esEs22(x0, x1, ty_Float)
new_ltEs15(Left(x0), Left(x1), ty_Int, x2)
new_compare24(x0, x1, False, x2, x3)
new_esEs21(x0, x1, ty_Float)
new_esEs7(Left(x0), Left(x1), ty_Integer, x2)
new_ltEs20(x0, x1, ty_Double)
new_primEqNat0(Succ(x0), Zero)
new_esEs22(x0, x1, ty_@0)
new_compare11(x0, x1, ty_Float)
new_ltEs8(Just(x0), Just(x1), ty_Bool)
new_lt13(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs18(x0, x1, app(ty_Maybe, x2))
new_compare113(x0, x1, False)
new_esEs20(x0, x1, app(ty_Maybe, x2))
new_ltEs20(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs12(x0, x1)
new_ltEs15(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_ltEs19(x0, x1, ty_Float)
new_ltEs16(x0, x1)
new_compare11(x0, x1, ty_Bool)
new_lt13(x0, x1, app(ty_[], x2))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))

We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_splitLT20(zzz330, zzz331, zzz332, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz334, True, h, ba) → new_splitLT20(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, new_lt15(Nothing, zzz3330, h), h, ba)
new_splitLT0(Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), h, ba) → new_splitLT20(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, new_lt15(Nothing, zzz3330, h), h, ba)
new_splitLT20(zzz330, zzz331, zzz332, zzz333, zzz334, False, h, ba) → new_splitLT10(zzz330, zzz331, zzz332, zzz333, zzz334, new_gt1(zzz330, h), h, ba)
new_splitLT10(zzz330, zzz331, zzz332, zzz333, zzz334, True, h, ba) → new_splitLT0(zzz334, h, ba)

The TRS R consists of the following rules:

new_esEs4(Just(zzz4000), Just(zzz3000), app(ty_Maybe, dbf)) → new_esEs4(zzz4000, zzz3000, dbf)
new_esEs23(zzz400001, zzz3300001, app(app(ty_Either, bfg), bfh)) → new_esEs7(zzz400001, zzz3300001, bfg, bfh)
new_ltEs19(zzz40000, zzz330000, ty_Integer) → new_ltEs16(zzz40000, zzz330000)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_esEs7(Left(zzz4000), Left(zzz3000), app(app(ty_Either, fb), fc), fa) → new_esEs7(zzz4000, zzz3000, fb, fc)
new_ltEs19(zzz40000, zzz330000, app(ty_Ratio, cdd)) → new_ltEs11(zzz40000, zzz330000, cdd)
new_esEs21(zzz4002, zzz3002, app(app(ty_@2, bea), beb)) → new_esEs6(zzz4002, zzz3002, bea, beb)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, app(ty_Maybe, dab)) → new_ltEs8(zzz400000, zzz3300000, dab)
new_lt14(zzz400000, zzz3300000, ty_Integer) → new_lt7(zzz400000, zzz3300000)
new_ltEs18(zzz400002, zzz3300002, ty_Int) → new_ltEs12(zzz400002, zzz3300002)
new_esEs24(zzz4000, zzz3000, app(app(app(ty_@3, cbd), cbe), cbf)) → new_esEs5(zzz4000, zzz3000, cbd, cbe, cbf)
new_esEs17(Char(zzz4000), Char(zzz3000)) → new_primEqNat0(zzz4000, zzz3000)
new_esEs20(zzz4001, zzz3001, ty_Bool) → new_esEs12(zzz4001, zzz3001)
new_esEs7(Left(zzz4000), Left(zzz3000), app(ty_Maybe, ff), fa) → new_esEs4(zzz4000, zzz3000, ff)
new_esEs24(zzz4000, zzz3000, ty_Char) → new_esEs17(zzz4000, zzz3000)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, ty_Float) → new_ltEs9(zzz400000, zzz3300000)
new_ltEs20(zzz400001, zzz3300001, app(ty_[], cfc)) → new_ltEs10(zzz400001, zzz3300001, cfc)
new_compare([], :(zzz3300000, zzz3300001), bf) → LT
new_compare10(zzz400000, zzz3300000, True, bd, be) → LT
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(app(app(ty_@3, bhg), bhh), caa)) → new_ltEs13(zzz400000, zzz3300000, bhg, bhh, caa)
new_lt13(zzz400001, zzz3300001, app(app(app(ty_@3, bfb), bfc), bfd)) → new_lt8(zzz400001, zzz3300001, bfb, bfc, bfd)
new_esEs24(zzz4000, zzz3000, app(ty_Maybe, cbc)) → new_esEs4(zzz4000, zzz3000, cbc)
new_esEs19(zzz4000, zzz3000, ty_Float) → new_esEs15(zzz4000, zzz3000)
new_esEs4(Nothing, Just(zzz3000), dbb) → False
new_esEs4(Just(zzz4000), Nothing, dbb) → False
new_lt20(zzz400000, zzz3300000, app(app(app(ty_@3, ced), cee), cef)) → new_lt8(zzz400000, zzz3300000, ced, cee, cef)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Char) → new_esEs17(zzz4000, zzz3000)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_@0) → new_esEs14(zzz4000, zzz3000)
new_esEs25(zzz4001, zzz3001, ty_Char) → new_esEs17(zzz4001, zzz3001)
new_ltEs20(zzz400001, zzz3300001, ty_Double) → new_ltEs7(zzz400001, zzz3300001)
new_primMulNat0(Zero, Zero) → Zero
new_esEs7(Left(zzz4000), Left(zzz3000), app(app(app(ty_@3, fg), fh), ga), fa) → new_esEs5(zzz4000, zzz3000, fg, fh, ga)
new_esEs26(zzz400000, zzz3300000, ty_Float) → new_esEs15(zzz400000, zzz3300000)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, ty_Double) → new_esEs16(zzz4000, zzz3000)
new_compare(:(zzz400000, zzz400001), [], bf) → GT
new_compare11(zzz400000, zzz3300000, ty_Int) → new_compare7(zzz400000, zzz3300000)
new_lt14(zzz400000, zzz3300000, ty_Ordering) → new_lt6(zzz400000, zzz3300000)
new_compare29(zzz400000, zzz3300000, True) → EQ
new_esEs23(zzz400001, zzz3300001, app(ty_Ratio, beh)) → new_esEs13(zzz400001, zzz3300001, beh)
new_esEs12(True, True) → True
new_ltEs18(zzz400002, zzz3300002, ty_Integer) → new_ltEs16(zzz400002, zzz3300002)
new_ltEs18(zzz400002, zzz3300002, ty_@0) → new_ltEs5(zzz400002, zzz3300002)
new_esEs20(zzz4001, zzz3001, app(ty_Maybe, bcb)) → new_esEs4(zzz4001, zzz3001, bcb)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Double, cdh) → new_ltEs7(zzz400000, zzz3300000)
new_esEs21(zzz4002, zzz3002, app(ty_[], bdh)) → new_esEs10(zzz4002, zzz3002, bdh)
new_esEs22(zzz400000, zzz3300000, ty_Char) → new_esEs17(zzz400000, zzz3300000)
new_ltEs20(zzz400001, zzz3300001, app(ty_Maybe, cfe)) → new_ltEs8(zzz400001, zzz3300001, cfe)
new_esEs23(zzz400001, zzz3300001, ty_Bool) → new_esEs12(zzz400001, zzz3300001)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_ltEs18(zzz400002, zzz3300002, ty_Char) → new_ltEs17(zzz400002, zzz3300002)
new_compare11(zzz400000, zzz3300000, app(ty_Maybe, ca)) → new_compare13(zzz400000, zzz3300000, ca)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, ty_@0) → new_ltEs5(zzz400000, zzz3300000)
new_ltEs14(False, True) → True
new_esEs24(zzz4000, zzz3000, ty_@0) → new_esEs14(zzz4000, zzz3000)
new_esEs25(zzz4001, zzz3001, ty_Double) → new_esEs16(zzz4001, zzz3001)
new_lt14(zzz400000, zzz3300000, app(app(ty_Either, hh), baa)) → new_lt18(zzz400000, zzz3300000, hh, baa)
new_esEs23(zzz400001, zzz3300001, app(ty_Maybe, bfa)) → new_esEs4(zzz400001, zzz3300001, bfa)
new_compare26(zzz400000, zzz3300000, False, hh, baa) → new_compare114(zzz400000, zzz3300000, new_ltEs15(zzz400000, zzz3300000, hh, baa), hh, baa)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, app(ty_[], he)) → new_esEs10(zzz4000, zzz3000, he)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Char, cdh) → new_ltEs17(zzz400000, zzz3300000)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, app(app(app(ty_@3, hb), hc), hd)) → new_esEs5(zzz4000, zzz3000, hb, hc, hd)
new_esEs26(zzz400000, zzz3300000, app(ty_[], cea)) → new_esEs10(zzz400000, zzz3300000, cea)
new_esEs20(zzz4001, zzz3001, app(ty_Ratio, bca)) → new_esEs13(zzz4001, zzz3001, bca)
new_compare11(zzz400000, zzz3300000, ty_Integer) → new_compare18(zzz400000, zzz3300000)
new_esEs22(zzz400000, zzz3300000, ty_Integer) → new_esEs9(zzz400000, zzz3300000)
new_compare15(zzz400000, zzz3300000) → new_compare29(zzz400000, zzz3300000, new_esEs12(zzz400000, zzz3300000))
new_lt13(zzz400001, zzz3300001, app(app(ty_Either, bfg), bfh)) → new_lt18(zzz400001, zzz3300001, bfg, bfh)
new_ltEs9(zzz40000, zzz330000) → new_fsEs(new_compare12(zzz40000, zzz330000))
new_ltEs20(zzz400001, zzz3300001, ty_Integer) → new_ltEs16(zzz400001, zzz3300001)
new_lt20(zzz400000, zzz3300000, app(ty_Maybe, cec)) → new_lt15(zzz400000, zzz3300000, cec)
new_lt14(zzz400000, zzz3300000, ty_Char) → new_lt12(zzz400000, zzz3300000)
new_esEs19(zzz4000, zzz3000, app(app(app(ty_@3, bba), bbb), bbc)) → new_esEs5(zzz4000, zzz3000, bba, bbb, bbc)
new_esEs19(zzz4000, zzz3000, ty_@0) → new_esEs14(zzz4000, zzz3000)
new_esEs26(zzz400000, zzz3300000, app(ty_Maybe, cec)) → new_esEs4(zzz400000, zzz3300000, cec)
new_esEs20(zzz4001, zzz3001, app(app(ty_@2, bcg), bch)) → new_esEs6(zzz4001, zzz3001, bcg, bch)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, app(app(ty_@2, daf), dag)) → new_ltEs4(zzz400000, zzz3300000, daf, dag)
new_lt13(zzz400001, zzz3300001, ty_Char) → new_lt12(zzz400001, zzz3300001)
new_esEs20(zzz4001, zzz3001, ty_@0) → new_esEs14(zzz4001, zzz3001)
new_esEs22(zzz400000, zzz3300000, app(app(ty_Either, hh), baa)) → new_esEs7(zzz400000, zzz3300000, hh, baa)
new_lt13(zzz400001, zzz3300001, app(ty_[], beg)) → new_lt4(zzz400001, zzz3300001, beg)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Ordering, cdh) → new_ltEs6(zzz400000, zzz3300000)
new_lt7(zzz400000, zzz3300000) → new_esEs8(new_compare18(zzz400000, zzz3300000), LT)
new_esEs25(zzz4001, zzz3001, app(ty_[], cda)) → new_esEs10(zzz4001, zzz3001, cda)
new_esEs28(zzz4001, zzz3001, ty_Int) → new_esEs18(zzz4001, zzz3001)
new_pePe(False, zzz214) → zzz214
new_esEs19(zzz4000, zzz3000, app(ty_[], bbd)) → new_esEs10(zzz4000, zzz3000, bbd)
new_compare27(Just(zzz40000), Just(zzz330000), False, bah) → new_compare110(zzz40000, zzz330000, new_ltEs19(zzz40000, zzz330000, bah), bah)
new_esEs7(Left(zzz4000), Left(zzz3000), app(ty_[], gb), fa) → new_esEs10(zzz4000, zzz3000, gb)
new_esEs7(Left(zzz4000), Right(zzz3000), ge, fa) → False
new_esEs7(Right(zzz4000), Left(zzz3000), ge, fa) → False
new_esEs27(zzz4000, zzz3000, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_compare11(zzz400000, zzz3300000, app(ty_[], bg)) → new_compare(zzz400000, zzz3300000, bg)
new_lt20(zzz400000, zzz3300000, ty_Bool) → new_lt11(zzz400000, zzz3300000)
new_lt15(zzz4000, zzz33000, bah) → new_esEs8(new_compare13(zzz4000, zzz33000, bah), LT)
new_lt9(zzz4000, zzz33000) → new_esEs8(new_compare7(zzz4000, zzz33000), LT)
new_esEs20(zzz4001, zzz3001, ty_Double) → new_esEs16(zzz4001, zzz3001)
new_ltEs19(zzz40000, zzz330000, app(app(ty_@2, cde), cdf)) → new_ltEs4(zzz40000, zzz330000, cde, cdf)
new_lt4(zzz400000, zzz3300000, bb) → new_esEs8(new_compare(zzz400000, zzz3300000, bb), LT)
new_esEs11(zzz4000, zzz3000, ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_lt20(zzz400000, zzz3300000, ty_Float) → new_lt10(zzz400000, zzz3300000)
new_lt6(zzz400000, zzz3300000) → new_esEs8(new_compare8(zzz400000, zzz3300000), LT)
new_ltEs10(zzz40000, zzz330000, bf) → new_fsEs(new_compare(zzz40000, zzz330000, bf))
new_esEs26(zzz400000, zzz3300000, ty_Bool) → new_esEs12(zzz400000, zzz3300000)
new_lt20(zzz400000, zzz3300000, app(app(ty_@2, ceg), ceh)) → new_lt17(zzz400000, zzz3300000, ceg, ceh)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_ltEs6(GT, EQ) → False
new_esEs22(zzz400000, zzz3300000, ty_Ordering) → new_esEs8(zzz400000, zzz3300000)
new_esEs19(zzz4000, zzz3000, app(app(ty_Either, bae), baf)) → new_esEs7(zzz4000, zzz3000, bae, baf)
new_esEs21(zzz4002, zzz3002, ty_Int) → new_esEs18(zzz4002, zzz3002)
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_compare111(zzz400000, zzz3300000, False) → GT
new_esEs18(zzz400, zzz300) → new_primEqInt(zzz400, zzz300)
new_compare111(zzz400000, zzz3300000, True) → LT
new_ltEs20(zzz400001, zzz3300001, app(app(ty_@2, cga), cgb)) → new_ltEs4(zzz400001, zzz3300001, cga, cgb)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_esEs22(zzz400000, zzz3300000, ty_Float) → new_esEs15(zzz400000, zzz3300000)
new_ltEs11(zzz40000, zzz330000, cdd) → new_fsEs(new_compare5(zzz40000, zzz330000, cdd))
new_ltEs8(Nothing, Just(zzz3300000), bhc) → True
new_ltEs20(zzz400001, zzz3300001, ty_Bool) → new_ltEs14(zzz400001, zzz3300001)
new_compare27(Nothing, Just(zzz330000), False, bah) → LT
new_lt20(zzz400000, zzz3300000, ty_Ordering) → new_lt6(zzz400000, zzz3300000)
new_esEs25(zzz4001, zzz3001, app(app(ty_@2, cdb), cdc)) → new_esEs6(zzz4001, zzz3001, cdb, cdc)
new_esEs8(LT, LT) → True
new_ltEs4(@2(zzz400000, zzz400001), @2(zzz3300000, zzz3300001), cde, cdf) → new_pePe(new_lt20(zzz400000, zzz3300000, cde), new_asAs(new_esEs26(zzz400000, zzz3300000, cde), new_ltEs20(zzz400001, zzz3300001, cdf)))
new_compare25(zzz400000, zzz3300000, True, db, dc, dd) → EQ
new_esEs19(zzz4000, zzz3000, app(ty_Maybe, bah)) → new_esEs4(zzz4000, zzz3000, bah)
new_esEs21(zzz4002, zzz3002, app(ty_Ratio, bdc)) → new_esEs13(zzz4002, zzz3002, bdc)
new_lt13(zzz400001, zzz3300001, ty_Int) → new_lt9(zzz400001, zzz3300001)
new_compare17(zzz400000, zzz3300000, hh, baa) → new_compare26(zzz400000, zzz3300000, new_esEs7(zzz400000, zzz3300000, hh, baa), hh, baa)
new_esEs19(zzz4000, zzz3000, ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_esEs25(zzz4001, zzz3001, ty_Ordering) → new_esEs8(zzz4001, zzz3001)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Int) → new_ltEs12(zzz400000, zzz3300000)
new_esEs25(zzz4001, zzz3001, app(ty_Ratio, ccd)) → new_esEs13(zzz4001, zzz3001, ccd)
new_esEs24(zzz4000, zzz3000, app(app(ty_Either, cah), cba)) → new_esEs7(zzz4000, zzz3000, cah, cba)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Double) → new_ltEs7(zzz400000, zzz3300000)
new_lt14(zzz400000, zzz3300000, ty_@0) → new_lt16(zzz400000, zzz3300000)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, ty_Float) → new_esEs15(zzz4000, zzz3000)
new_esEs24(zzz4000, zzz3000, app(app(ty_@2, cbh), cca)) → new_esEs6(zzz4000, zzz3000, cbh, cca)
new_esEs22(zzz400000, zzz3300000, ty_Int) → new_esEs18(zzz400000, zzz3300000)
new_pePe(True, zzz214) → True
new_primEqNat0(Zero, Zero) → True
new_esEs26(zzz400000, zzz3300000, ty_Char) → new_esEs17(zzz400000, zzz3300000)
new_esEs19(zzz4000, zzz3000, app(ty_Ratio, bag)) → new_esEs13(zzz4000, zzz3000, bag)
new_esEs14(@0, @0) → True
new_esEs23(zzz400001, zzz3300001, ty_Integer) → new_esEs9(zzz400001, zzz3300001)
new_esEs26(zzz400000, zzz3300000, app(ty_Ratio, ceb)) → new_esEs13(zzz400000, zzz3300000, ceb)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Bool) → new_ltEs14(zzz400000, zzz3300000)
new_ltEs19(zzz40000, zzz330000, ty_@0) → new_ltEs5(zzz40000, zzz330000)
new_lt20(zzz400000, zzz3300000, ty_Integer) → new_lt7(zzz400000, zzz3300000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(ty_[], cgf), cdh) → new_ltEs10(zzz400000, zzz3300000, cgf)
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Ordering, fa) → new_esEs8(zzz4000, zzz3000)
new_lt13(zzz400001, zzz3300001, ty_Float) → new_lt10(zzz400001, zzz3300001)
new_compare(:(zzz400000, zzz400001), :(zzz3300000, zzz3300001), bf) → new_primCompAux1(zzz400000, zzz3300000, new_compare(zzz400001, zzz3300001, bf), bf)
new_ltEs19(zzz40000, zzz330000, ty_Ordering) → new_ltEs6(zzz40000, zzz330000)
new_sr(zzz4001, zzz3001) → new_primMulInt(zzz4001, zzz3001)
new_esEs4(Just(zzz4000), Just(zzz3000), app(ty_[], dcb)) → new_esEs10(zzz4000, zzz3000, dcb)
new_compare7(zzz400, zzz3300) → new_primCmpInt(zzz400, zzz3300)
new_esEs24(zzz4000, zzz3000, ty_Double) → new_esEs16(zzz4000, zzz3000)
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(app(ty_Either, cad), cae)) → new_ltEs15(zzz400000, zzz3300000, cad, cae)
new_compare12(Float(zzz400000, zzz400001), Float(zzz3300000, zzz3300001)) → new_compare7(new_sr(zzz400000, zzz3300000), new_sr(zzz400001, zzz3300001))
new_esEs26(zzz400000, zzz3300000, ty_Ordering) → new_esEs8(zzz400000, zzz3300000)
new_ltEs6(EQ, GT) → True
new_esEs8(GT, GT) → True
new_ltEs20(zzz400001, zzz3300001, app(ty_Ratio, cfd)) → new_ltEs11(zzz400001, zzz3300001, cfd)
new_esEs20(zzz4001, zzz3001, ty_Integer) → new_esEs9(zzz4001, zzz3001)
new_esEs21(zzz4002, zzz3002, ty_Double) → new_esEs16(zzz4002, zzz3002)
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_ltEs18(zzz400002, zzz3300002, ty_Ordering) → new_ltEs6(zzz400002, zzz3300002)
new_esEs11(zzz4000, zzz3000, ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, app(app(ty_Either, gf), gg)) → new_esEs7(zzz4000, zzz3000, gf, gg)
new_esEs12(False, False) → True
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(ty_[], bhd)) → new_ltEs10(zzz400000, zzz3300000, bhd)
new_esEs8(GT, LT) → False
new_esEs8(LT, GT) → False
new_ltEs18(zzz400002, zzz3300002, ty_Double) → new_ltEs7(zzz400002, zzz3300002)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_@0, cdh) → new_ltEs5(zzz400000, zzz3300000)
new_primEqInt(Neg(Succ(zzz40000)), Neg(Succ(zzz30000))) → new_primEqNat0(zzz40000, zzz30000)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, ty_Char) → new_esEs17(zzz4000, zzz3000)
new_lt14(zzz400000, zzz3300000, app(ty_[], bb)) → new_lt4(zzz400000, zzz3300000, bb)
new_esEs20(zzz4001, zzz3001, ty_Ordering) → new_esEs8(zzz4001, zzz3001)
new_esEs23(zzz400001, zzz3300001, ty_Ordering) → new_esEs8(zzz400001, zzz3300001)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_compare27(Just(zzz40000), Nothing, False, bah) → GT
new_primCompAux1(zzz400000, zzz3300000, zzz215, bf) → new_primCompAux0(zzz215, new_compare11(zzz400000, zzz3300000, bf))
new_lt14(zzz400000, zzz3300000, app(ty_Ratio, bc)) → new_lt5(zzz400000, zzz3300000, bc)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, app(app(app(ty_@3, dac), dad), dae)) → new_ltEs13(zzz400000, zzz3300000, dac, dad, dae)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, app(ty_Ratio, gh)) → new_esEs13(zzz4000, zzz3000, gh)
new_ltEs19(zzz40000, zzz330000, ty_Float) → new_ltEs9(zzz40000, zzz330000)
new_compare27(Nothing, Nothing, False, bah) → LT
new_esEs25(zzz4001, zzz3001, ty_Int) → new_esEs18(zzz4001, zzz3001)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Char) → new_ltEs17(zzz400000, zzz3300000)
new_primEqInt(Neg(Zero), Neg(Zero)) → True
new_esEs7(Left(zzz4000), Left(zzz3000), app(ty_Ratio, fd), fa) → new_esEs13(zzz4000, zzz3000, fd)
new_esEs7(Left(zzz4000), Left(zzz3000), app(app(ty_@2, gc), gd), fa) → new_esEs6(zzz4000, zzz3000, gc, gd)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, ty_Double) → new_ltEs7(zzz400000, zzz3300000)
new_ltEs6(EQ, EQ) → True
new_esEs11(zzz4000, zzz3000, app(app(app(ty_@3, ec), ed), ee)) → new_esEs5(zzz4000, zzz3000, ec, ed, ee)
new_esEs11(zzz4000, zzz3000, ty_Float) → new_esEs15(zzz4000, zzz3000)
new_primEqInt(Neg(Zero), Neg(Succ(zzz30000))) → False
new_primEqInt(Neg(Succ(zzz40000)), Neg(Zero)) → False
new_primCompAux0(zzz220, GT) → GT
new_ltEs17(zzz40000, zzz330000) → new_fsEs(new_compare19(zzz40000, zzz330000))
new_esEs8(EQ, EQ) → True
new_compare26(zzz400000, zzz3300000, True, hh, baa) → EQ
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Bool, cdh) → new_ltEs14(zzz400000, zzz3300000)
new_ltEs6(GT, GT) → True
new_esEs24(zzz4000, zzz3000, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_compare24(zzz400000, zzz3300000, True, bd, be) → EQ
new_ltEs13(@3(zzz400000, zzz400001, zzz400002), @3(zzz3300000, zzz3300001, zzz3300002), bec, bed, bee) → new_pePe(new_lt14(zzz400000, zzz3300000, bec), new_asAs(new_esEs22(zzz400000, zzz3300000, bec), new_pePe(new_lt13(zzz400001, zzz3300001, bed), new_asAs(new_esEs23(zzz400001, zzz3300001, bed), new_ltEs18(zzz400002, zzz3300002, bee)))))
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(ty_Maybe, cgh), cdh) → new_ltEs8(zzz400000, zzz3300000, cgh)
new_ltEs19(zzz40000, zzz330000, ty_Char) → new_ltEs17(zzz40000, zzz330000)
new_esEs22(zzz400000, zzz3300000, app(app(app(ty_@3, db), dc), dd)) → new_esEs5(zzz400000, zzz3300000, db, dc, dd)
new_compare([], [], bf) → EQ
new_compare11(zzz400000, zzz3300000, app(app(ty_@2, ce), cf)) → new_compare16(zzz400000, zzz3300000, ce, cf)
new_esEs26(zzz400000, zzz3300000, app(app(ty_Either, cfa), cfb)) → new_esEs7(zzz400000, zzz3300000, cfa, cfb)
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_esEs10([], :(zzz3000, zzz3001), df) → False
new_esEs10(:(zzz4000, zzz4001), [], df) → False
new_ltEs19(zzz40000, zzz330000, ty_Double) → new_ltEs7(zzz40000, zzz330000)
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_esEs4(Just(zzz4000), Just(zzz3000), app(app(ty_Either, dbc), dbd)) → new_esEs7(zzz4000, zzz3000, dbc, dbd)
new_esEs9(Integer(zzz4000), Integer(zzz3000)) → new_primEqInt(zzz4000, zzz3000)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, app(app(ty_@2, hf), hg)) → new_esEs6(zzz4000, zzz3000, hf, hg)
new_esEs22(zzz400000, zzz3300000, app(ty_Maybe, bef)) → new_esEs4(zzz400000, zzz3300000, bef)
new_esEs25(zzz4001, zzz3001, app(ty_Maybe, cce)) → new_esEs4(zzz4001, zzz3001, cce)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Int) → new_esEs18(zzz4000, zzz3000)
new_primEqInt(Pos(Succ(zzz40000)), Pos(Succ(zzz30000))) → new_primEqNat0(zzz40000, zzz30000)
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(ty_Ratio, bhe)) → new_ltEs11(zzz400000, zzz3300000, bhe)
new_compare10(zzz400000, zzz3300000, False, bd, be) → GT
new_esEs6(@2(zzz4000, zzz4001), @2(zzz3000, zzz3001), caf, cag) → new_asAs(new_esEs24(zzz4000, zzz3000, caf), new_esEs25(zzz4001, zzz3001, cag))
new_compare11(zzz400000, zzz3300000, app(ty_Ratio, bh)) → new_compare5(zzz400000, zzz3300000, bh)
new_ltEs19(zzz40000, zzz330000, ty_Bool) → new_ltEs14(zzz40000, zzz330000)
new_ltEs18(zzz400002, zzz3300002, app(app(ty_Either, bha), bhb)) → new_ltEs15(zzz400002, zzz3300002, bha, bhb)
new_esEs23(zzz400001, zzz3300001, ty_Char) → new_esEs17(zzz400001, zzz3300001)
new_esEs10([], [], df) → True
new_esEs24(zzz4000, zzz3000, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_lt14(zzz400000, zzz3300000, ty_Double) → new_lt19(zzz400000, zzz3300000)
new_primEqNat0(Succ(zzz40000), Succ(zzz30000)) → new_primEqNat0(zzz40000, zzz30000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Int, cdh) → new_ltEs12(zzz400000, zzz3300000)
new_ltEs14(False, False) → True
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Integer, fa) → new_esEs9(zzz4000, zzz3000)
new_esEs19(zzz4000, zzz3000, app(app(ty_@2, bbe), bbf)) → new_esEs6(zzz4000, zzz3000, bbe, bbf)
new_esEs4(Just(zzz4000), Just(zzz3000), app(app(app(ty_@3, dbg), dbh), dca)) → new_esEs5(zzz4000, zzz3000, dbg, dbh, dca)
new_esEs22(zzz400000, zzz3300000, ty_Bool) → new_esEs12(zzz400000, zzz3300000)
new_compare6(Double(zzz400000, zzz400001), Double(zzz3300000, zzz3300001)) → new_compare7(new_sr(zzz400000, zzz3300000), new_sr(zzz400001, zzz3300001))
new_lt11(zzz400000, zzz3300000) → new_esEs8(new_compare15(zzz400000, zzz3300000), LT)
new_compare114(zzz400000, zzz3300000, True, hh, baa) → LT
new_esEs24(zzz4000, zzz3000, ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_ltEs8(Just(zzz400000), Nothing, bhc) → False
new_esEs20(zzz4001, zzz3001, ty_Float) → new_esEs15(zzz4001, zzz3001)
new_compare31(zzz330, h) → new_compare27(Nothing, zzz330, new_esEs30(zzz330, h), h)
new_compare5(:%(zzz400000, zzz400001), :%(zzz3300000, zzz3300001), ty_Integer) → new_compare18(new_sr0(zzz400000, zzz3300001), new_sr0(zzz3300000, zzz400001))
new_esEs11(zzz4000, zzz3000, app(ty_Maybe, eb)) → new_esEs4(zzz4000, zzz3000, eb)
new_compare24(zzz400000, zzz3300000, False, bd, be) → new_compare10(zzz400000, zzz3300000, new_ltEs4(zzz400000, zzz3300000, bd, be), bd, be)
new_compare19(Char(zzz400000), Char(zzz3300000)) → new_primCmpNat0(zzz400000, zzz3300000)
new_esEs8(EQ, LT) → False
new_esEs8(LT, EQ) → False
new_lt20(zzz400000, zzz3300000, app(ty_Ratio, ceb)) → new_lt5(zzz400000, zzz3300000, ceb)
new_primEqInt(Pos(Zero), Pos(Succ(zzz30000))) → False
new_primEqInt(Pos(Succ(zzz40000)), Pos(Zero)) → False
new_esEs24(zzz4000, zzz3000, ty_Float) → new_esEs15(zzz4000, zzz3000)
new_primCmpNat0(Zero, Zero) → EQ
new_lt14(zzz400000, zzz3300000, app(app(app(ty_@3, db), dc), dd)) → new_lt8(zzz400000, zzz3300000, db, dc, dd)
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_esEs19(zzz4000, zzz3000, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_compare11(zzz400000, zzz3300000, ty_Char) → new_compare19(zzz400000, zzz3300000)
new_lt12(zzz400000, zzz3300000) → new_esEs8(new_compare19(zzz400000, zzz3300000), LT)
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_compare9(@0, @0) → EQ
new_esEs21(zzz4002, zzz3002, ty_Float) → new_esEs15(zzz4002, zzz3002)
new_esEs22(zzz400000, zzz3300000, app(ty_Ratio, bc)) → new_esEs13(zzz400000, zzz3300000, bc)
new_esEs27(zzz4000, zzz3000, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_sr0(Integer(zzz33000000), Integer(zzz4000010)) → Integer(new_primMulInt(zzz33000000, zzz4000010))
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primEqInt(Neg(Succ(zzz40000)), Pos(zzz3000)) → False
new_primEqInt(Pos(Succ(zzz40000)), Neg(zzz3000)) → False
new_esEs24(zzz4000, zzz3000, app(ty_Ratio, cbb)) → new_esEs13(zzz4000, zzz3000, cbb)
new_esEs4(Just(zzz4000), Just(zzz3000), app(app(ty_@2, dcc), dcd)) → new_esEs6(zzz4000, zzz3000, dcc, dcd)
new_gt1(zzz330, h) → new_esEs8(new_compare31(zzz330, h), GT)
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Float, fa) → new_esEs15(zzz4000, zzz3000)
new_compare18(Integer(zzz400000), Integer(zzz3300000)) → new_primCmpInt(zzz400000, zzz3300000)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Ordering) → new_ltEs6(zzz400000, zzz3300000)
new_esEs22(zzz400000, zzz3300000, app(app(ty_@2, bd), be)) → new_esEs6(zzz400000, zzz3300000, bd, be)
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primEqInt(Neg(Zero), Pos(Succ(zzz30000))) → False
new_primEqInt(Pos(Zero), Neg(Succ(zzz30000))) → False
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Float) → new_ltEs9(zzz400000, zzz3300000)
new_lt8(zzz400000, zzz3300000, db, dc, dd) → new_esEs8(new_compare14(zzz400000, zzz3300000, db, dc, dd), LT)
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_ltEs18(zzz400002, zzz3300002, app(ty_Ratio, bgb)) → new_ltEs11(zzz400002, zzz3300002, bgb)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, app(ty_Maybe, ha)) → new_esEs4(zzz4000, zzz3000, ha)
new_esEs25(zzz4001, zzz3001, ty_@0) → new_esEs14(zzz4001, zzz3001)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, ty_Char) → new_ltEs17(zzz400000, zzz3300000)
new_compare11(zzz400000, zzz3300000, app(app(app(ty_@3, cb), cc), cd)) → new_compare14(zzz400000, zzz3300000, cb, cc, cd)
new_esEs23(zzz400001, zzz3300001, ty_Int) → new_esEs18(zzz400001, zzz3300001)
new_ltEs5(zzz40000, zzz330000) → new_fsEs(new_compare9(zzz40000, zzz330000))
new_esEs25(zzz4001, zzz3001, ty_Float) → new_esEs15(zzz4001, zzz3001)
new_esEs8(GT, EQ) → False
new_esEs8(EQ, GT) → False
new_compare13(zzz4000, zzz33000, bah) → new_compare27(zzz4000, zzz33000, new_esEs4(zzz4000, zzz33000, bah), bah)
new_esEs16(Double(zzz4000, zzz4001), Double(zzz3000, zzz3001)) → new_esEs18(new_sr(zzz4000, zzz3000), new_sr(zzz4001, zzz3001))
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Float) → new_esEs15(zzz4000, zzz3000)
new_ltEs19(zzz40000, zzz330000, app(app(app(ty_@3, bec), bed), bee)) → new_ltEs13(zzz40000, zzz330000, bec, bed, bee)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_lt20(zzz400000, zzz3300000, ty_@0) → new_lt16(zzz400000, zzz3300000)
new_esEs10(:(zzz4000, zzz4001), :(zzz3000, zzz3001), df) → new_asAs(new_esEs11(zzz4000, zzz3000, df), new_esEs10(zzz4001, zzz3001, df))
new_primCompAux0(zzz220, LT) → LT
new_esEs7(Right(zzz4000), Right(zzz3000), ge, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_@0) → new_ltEs5(zzz400000, zzz3300000)
new_lt13(zzz400001, zzz3300001, ty_Bool) → new_lt11(zzz400001, zzz3300001)
new_compare16(zzz400000, zzz3300000, bd, be) → new_compare24(zzz400000, zzz3300000, new_esEs6(zzz400000, zzz3300000, bd, be), bd, be)
new_compare11(zzz400000, zzz3300000, ty_Double) → new_compare6(zzz400000, zzz3300000)
new_compare113(zzz400000, zzz3300000, True) → LT
new_compare114(zzz400000, zzz3300000, False, hh, baa) → GT
new_not(False) → True
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Int, fa) → new_esEs18(zzz4000, zzz3000)
new_compare110(zzz195, zzz196, True, de) → LT
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Double, fa) → new_esEs16(zzz4000, zzz3000)
new_lt16(zzz400000, zzz3300000) → new_esEs8(new_compare9(zzz400000, zzz3300000), LT)
new_ltEs19(zzz40000, zzz330000, app(ty_[], bf)) → new_ltEs10(zzz40000, zzz330000, bf)
new_lt13(zzz400001, zzz3300001, ty_Integer) → new_lt7(zzz400001, zzz3300001)
new_esEs23(zzz400001, zzz3300001, app(app(ty_@2, bfe), bff)) → new_esEs6(zzz400001, zzz3300001, bfe, bff)
new_esEs19(zzz4000, zzz3000, ty_Char) → new_esEs17(zzz4000, zzz3000)
new_compare113(zzz400000, zzz3300000, False) → GT
new_esEs7(Right(zzz4000), Right(zzz3000), ge, ty_@0) → new_esEs14(zzz4000, zzz3000)
new_esEs26(zzz400000, zzz3300000, ty_Int) → new_esEs18(zzz400000, zzz3300000)
new_esEs11(zzz4000, zzz3000, ty_Double) → new_esEs16(zzz4000, zzz3000)
new_esEs11(zzz4000, zzz3000, ty_@0) → new_esEs14(zzz4000, zzz3000)
new_lt13(zzz400001, zzz3300001, app(ty_Ratio, beh)) → new_lt5(zzz400001, zzz3300001, beh)
new_esEs23(zzz400001, zzz3300001, app(ty_[], beg)) → new_esEs10(zzz400001, zzz3300001, beg)
new_ltEs19(zzz40000, zzz330000, app(app(ty_Either, cdg), cdh)) → new_ltEs15(zzz40000, zzz330000, cdg, cdh)
new_esEs19(zzz4000, zzz3000, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_compare28(zzz400000, zzz3300000, True) → EQ
new_lt13(zzz400001, zzz3300001, app(app(ty_@2, bfe), bff)) → new_lt17(zzz400001, zzz3300001, bfe, bff)
new_esEs20(zzz4001, zzz3001, ty_Int) → new_esEs18(zzz4001, zzz3001)
new_esEs20(zzz4001, zzz3001, app(app(app(ty_@3, bcc), bcd), bce)) → new_esEs5(zzz4001, zzz3001, bcc, bcd, bce)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_esEs21(zzz4002, zzz3002, app(app(app(ty_@3, bde), bdf), bdg)) → new_esEs5(zzz4002, zzz3002, bde, bdf, bdg)
new_lt14(zzz400000, zzz3300000, ty_Int) → new_lt9(zzz400000, zzz3300000)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_ltEs18(zzz400002, zzz3300002, ty_Float) → new_ltEs9(zzz400002, zzz3300002)
new_esEs5(@3(zzz4000, zzz4001, zzz4002), @3(zzz3000, zzz3001, zzz3002), bab, bac, bad) → new_asAs(new_esEs19(zzz4000, zzz3000, bab), new_asAs(new_esEs20(zzz4001, zzz3001, bac), new_esEs21(zzz4002, zzz3002, bad)))
new_esEs7(Left(zzz4000), Left(zzz3000), ty_@0, fa) → new_esEs14(zzz4000, zzz3000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(app(app(ty_@3, cha), chb), chc), cdh) → new_ltEs13(zzz400000, zzz3300000, cha, chb, chc)
new_ltEs19(zzz40000, zzz330000, app(ty_Maybe, bhc)) → new_ltEs8(zzz40000, zzz330000, bhc)
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primEqNat0(Succ(zzz40000), Zero) → False
new_primEqNat0(Zero, Succ(zzz30000)) → False
new_ltEs19(zzz40000, zzz330000, ty_Int) → new_ltEs12(zzz40000, zzz330000)
new_ltEs6(LT, LT) → True
new_lt20(zzz400000, zzz3300000, app(app(ty_Either, cfa), cfb)) → new_lt18(zzz400000, zzz3300000, cfa, cfb)
new_ltEs6(EQ, LT) → False
new_esEs20(zzz4001, zzz3001, app(ty_[], bcf)) → new_esEs10(zzz4001, zzz3001, bcf)
new_ltEs14(True, True) → True
new_primEqInt(Pos(Zero), Pos(Zero)) → True
new_ltEs12(zzz40000, zzz330000) → new_fsEs(new_compare7(zzz40000, zzz330000))
new_esEs4(Nothing, Nothing, dbb) → True
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Char, fa) → new_esEs17(zzz4000, zzz3000)
new_esEs4(Just(zzz4000), Just(zzz3000), app(ty_Ratio, dbe)) → new_esEs13(zzz4000, zzz3000, dbe)
new_esEs11(zzz4000, zzz3000, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_lt14(zzz400000, zzz3300000, ty_Bool) → new_lt11(zzz400000, zzz3300000)
new_lt18(zzz400000, zzz3300000, hh, baa) → new_esEs8(new_compare17(zzz400000, zzz3300000, hh, baa), LT)
new_esEs21(zzz4002, zzz3002, app(app(ty_Either, bda), bdb)) → new_esEs7(zzz4002, zzz3002, bda, bdb)
new_ltEs18(zzz400002, zzz3300002, app(app(app(ty_@3, bgd), bge), bgf)) → new_ltEs13(zzz400002, zzz3300002, bgd, bge, bgf)
new_lt13(zzz400001, zzz3300001, app(ty_Maybe, bfa)) → new_lt15(zzz400001, zzz3300001, bfa)
new_lt13(zzz400001, zzz3300001, ty_Double) → new_lt19(zzz400001, zzz3300001)
new_ltEs20(zzz400001, zzz3300001, ty_@0) → new_ltEs5(zzz400001, zzz3300001)
new_compare112(zzz400000, zzz3300000, True, db, dc, dd) → LT
new_esEs21(zzz4002, zzz3002, ty_Char) → new_esEs17(zzz4002, zzz3002)
new_lt10(zzz400000, zzz3300000) → new_esEs8(new_compare12(zzz400000, zzz3300000), LT)
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_compare110(zzz195, zzz196, False, de) → GT
new_ltEs20(zzz400001, zzz3300001, ty_Int) → new_ltEs12(zzz400001, zzz3300001)
new_lt14(zzz400000, zzz3300000, app(app(ty_@2, bd), be)) → new_lt17(zzz400000, zzz3300000, bd, be)
new_ltEs20(zzz400001, zzz3300001, app(app(app(ty_@3, cff), cfg), cfh)) → new_ltEs13(zzz400001, zzz3300001, cff, cfg, cfh)
new_esEs26(zzz400000, zzz3300000, ty_@0) → new_esEs14(zzz400000, zzz3300000)
new_esEs11(zzz4000, zzz3000, app(app(ty_Either, dg), dh)) → new_esEs7(zzz4000, zzz3000, dg, dh)
new_lt14(zzz400000, zzz3300000, app(ty_Maybe, bef)) → new_lt15(zzz400000, zzz3300000, bef)
new_ltEs18(zzz400002, zzz3300002, app(ty_[], bga)) → new_ltEs10(zzz400002, zzz3300002, bga)
new_esEs24(zzz4000, zzz3000, app(ty_[], cbg)) → new_esEs10(zzz4000, zzz3000, cbg)
new_esEs21(zzz4002, zzz3002, app(ty_Maybe, bdd)) → new_esEs4(zzz4002, zzz3002, bdd)
new_compare11(zzz400000, zzz3300000, ty_@0) → new_compare9(zzz400000, zzz3300000)
new_esEs20(zzz4001, zzz3001, app(app(ty_Either, bbg), bbh)) → new_esEs7(zzz4001, zzz3001, bbg, bbh)
new_ltEs20(zzz400001, zzz3300001, app(app(ty_Either, cgc), cgd)) → new_ltEs15(zzz400001, zzz3300001, cgc, cgd)
new_esEs23(zzz400001, zzz3300001, ty_@0) → new_esEs14(zzz400001, zzz3300001)
new_esEs11(zzz4000, zzz3000, app(app(ty_@2, eg), eh)) → new_esEs6(zzz4000, zzz3000, eg, eh)
new_esEs28(zzz4001, zzz3001, ty_Integer) → new_esEs9(zzz4001, zzz3001)
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs25(zzz4001, zzz3001, ty_Bool) → new_esEs12(zzz4001, zzz3001)
new_esEs21(zzz4002, zzz3002, ty_@0) → new_esEs14(zzz4002, zzz3002)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, app(ty_[], chh)) → new_ltEs10(zzz400000, zzz3300000, chh)
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(ty_Maybe, bhf)) → new_ltEs8(zzz400000, zzz3300000, bhf)
new_esEs19(zzz4000, zzz3000, ty_Double) → new_esEs16(zzz4000, zzz3000)
new_esEs13(:%(zzz4000, zzz4001), :%(zzz3000, zzz3001), cge) → new_asAs(new_esEs27(zzz4000, zzz3000, cge), new_esEs28(zzz4001, zzz3001, cge))
new_lt14(zzz400000, zzz3300000, ty_Float) → new_lt10(zzz400000, zzz3300000)
new_asAs(False, zzz202) → False
new_lt20(zzz400000, zzz3300000, ty_Double) → new_lt19(zzz400000, zzz3300000)
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, ty_Ordering) → new_ltEs6(zzz400000, zzz3300000)
new_compare14(zzz400000, zzz3300000, db, dc, dd) → new_compare25(zzz400000, zzz3300000, new_esEs5(zzz400000, zzz3300000, db, dc, dd), db, dc, dd)
new_esEs21(zzz4002, zzz3002, ty_Ordering) → new_esEs8(zzz4002, zzz3002)
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(app(ty_@2, cab), cac)) → new_ltEs4(zzz400000, zzz3300000, cab, cac)
new_compare11(zzz400000, zzz3300000, ty_Bool) → new_compare15(zzz400000, zzz3300000)
new_esEs22(zzz400000, zzz3300000, app(ty_[], bb)) → new_esEs10(zzz400000, zzz3300000, bb)
new_ltEs16(zzz40000, zzz330000) → new_fsEs(new_compare18(zzz40000, zzz330000))
new_lt20(zzz400000, zzz3300000, app(ty_[], cea)) → new_lt4(zzz400000, zzz3300000, cea)
new_lt19(zzz400000, zzz3300000) → new_esEs8(new_compare6(zzz400000, zzz3300000), LT)
new_esEs23(zzz400001, zzz3300001, ty_Float) → new_esEs15(zzz400001, zzz3300001)
new_ltEs18(zzz400002, zzz3300002, ty_Bool) → new_ltEs14(zzz400002, zzz3300002)
new_esEs21(zzz4002, zzz3002, ty_Integer) → new_esEs9(zzz4002, zzz3002)
new_compare11(zzz400000, zzz3300000, app(app(ty_Either, cg), da)) → new_compare17(zzz400000, zzz3300000, cg, da)
new_compare25(zzz400000, zzz3300000, False, db, dc, dd) → new_compare112(zzz400000, zzz3300000, new_ltEs13(zzz400000, zzz3300000, db, dc, dd), db, dc, dd)
new_esEs26(zzz400000, zzz3300000, ty_Integer) → new_esEs9(zzz400000, zzz3300000)
new_esEs24(zzz4000, zzz3000, ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_esEs23(zzz400001, zzz3300001, ty_Double) → new_esEs16(zzz400001, zzz3300001)
new_ltEs6(LT, GT) → True
new_compare11(zzz400000, zzz3300000, ty_Ordering) → new_compare8(zzz400000, zzz3300000)
new_lt13(zzz400001, zzz3300001, ty_Ordering) → new_lt6(zzz400001, zzz3300001)
new_compare112(zzz400000, zzz3300000, False, db, dc, dd) → GT
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Double) → new_esEs16(zzz4000, zzz3000)
new_esEs12(True, False) → False
new_esEs12(False, True) → False
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, ty_Int) → new_ltEs12(zzz400000, zzz3300000)
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Bool, fa) → new_esEs12(zzz4000, zzz3000)
new_esEs11(zzz4000, zzz3000, app(ty_Ratio, ea)) → new_esEs13(zzz4000, zzz3000, ea)
new_esEs30(Just(zzz3300), h) → False
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(ty_Ratio, cgg), cdh) → new_ltEs11(zzz400000, zzz3300000, cgg)
new_compare11(zzz400000, zzz3300000, ty_Float) → new_compare12(zzz400000, zzz3300000)
new_esEs11(zzz4000, zzz3000, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_ltEs18(zzz400002, zzz3300002, app(ty_Maybe, bgc)) → new_ltEs8(zzz400002, zzz3300002, bgc)
new_ltEs14(True, False) → False
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_ltEs8(Nothing, Nothing, bhc) → True
new_esEs22(zzz400000, zzz3300000, ty_@0) → new_esEs14(zzz400000, zzz3300000)
new_esEs25(zzz4001, zzz3001, app(app(app(ty_@3, ccf), ccg), cch)) → new_esEs5(zzz4001, zzz3001, ccf, ccg, cch)
new_esEs15(Float(zzz4000, zzz4001), Float(zzz3000, zzz3001)) → new_esEs18(new_sr(zzz4000, zzz3000), new_sr(zzz4001, zzz3001))
new_lt20(zzz400000, zzz3300000, ty_Char) → new_lt12(zzz400000, zzz3300000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Integer, cdh) → new_ltEs16(zzz400000, zzz3300000)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, app(app(ty_Either, dah), dba)) → new_ltEs15(zzz400000, zzz3300000, dah, dba)
new_compare27(zzz4000, zzz33000, True, bah) → EQ
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, ty_Bool) → new_ltEs14(zzz400000, zzz3300000)
new_compare28(zzz400000, zzz3300000, False) → new_compare113(zzz400000, zzz3300000, new_ltEs6(zzz400000, zzz3300000))
new_esEs22(zzz400000, zzz3300000, ty_Double) → new_esEs16(zzz400000, zzz3300000)
new_esEs20(zzz4001, zzz3001, ty_Char) → new_esEs17(zzz4001, zzz3001)
new_ltEs7(zzz40000, zzz330000) → new_fsEs(new_compare6(zzz40000, zzz330000))
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, app(ty_Ratio, daa)) → new_ltEs11(zzz400000, zzz3300000, daa)
new_primPlusNat1(Zero, Zero) → Zero
new_ltEs6(LT, EQ) → True
new_ltEs6(GT, LT) → False
new_asAs(True, zzz202) → zzz202
new_esEs26(zzz400000, zzz3300000, app(app(app(ty_@3, ced), cee), cef)) → new_esEs5(zzz400000, zzz3300000, ced, cee, cef)
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_esEs11(zzz4000, zzz3000, ty_Char) → new_esEs17(zzz4000, zzz3000)
new_esEs11(zzz4000, zzz3000, app(ty_[], ef)) → new_esEs10(zzz4000, zzz3000, ef)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Integer) → new_ltEs16(zzz400000, zzz3300000)
new_compare8(zzz400000, zzz3300000) → new_compare28(zzz400000, zzz3300000, new_esEs8(zzz400000, zzz3300000))
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, ty_Integer) → new_ltEs16(zzz400000, zzz3300000)
new_lt13(zzz400001, zzz3300001, ty_@0) → new_lt16(zzz400001, zzz3300001)
new_fsEs(zzz205) → new_not(new_esEs8(zzz205, GT))
new_ltEs20(zzz400001, zzz3300001, ty_Float) → new_ltEs9(zzz400001, zzz3300001)
new_esEs26(zzz400000, zzz3300000, app(app(ty_@2, ceg), ceh)) → new_esEs6(zzz400000, zzz3300000, ceg, ceh)
new_esEs23(zzz400001, zzz3300001, app(app(app(ty_@3, bfb), bfc), bfd)) → new_esEs5(zzz400001, zzz3300001, bfb, bfc, bfd)
new_esEs19(zzz4000, zzz3000, ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_lt20(zzz400000, zzz3300000, ty_Int) → new_lt9(zzz400000, zzz3300000)
new_esEs26(zzz400000, zzz3300000, ty_Double) → new_esEs16(zzz400000, zzz3300000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(app(ty_Either, chf), chg), cdh) → new_ltEs15(zzz400000, zzz3300000, chf, chg)
new_ltEs15(Left(zzz400000), Right(zzz3300000), cdg, cdh) → True
new_esEs30(Nothing, h) → True
new_ltEs18(zzz400002, zzz3300002, app(app(ty_@2, bgg), bgh)) → new_ltEs4(zzz400002, zzz3300002, bgg, bgh)
new_ltEs20(zzz400001, zzz3300001, ty_Ordering) → new_ltEs6(zzz400001, zzz3300001)
new_lt17(zzz400000, zzz3300000, bd, be) → new_esEs8(new_compare16(zzz400000, zzz3300000, bd, be), LT)
new_compare5(:%(zzz400000, zzz400001), :%(zzz3300000, zzz3300001), ty_Int) → new_compare7(new_sr(zzz400000, zzz3300001), new_sr(zzz3300000, zzz400001))
new_esEs21(zzz4002, zzz3002, ty_Bool) → new_esEs12(zzz4002, zzz3002)
new_lt5(zzz400000, zzz3300000, bc) → new_esEs8(new_compare5(zzz400000, zzz3300000, bc), LT)
new_esEs25(zzz4001, zzz3001, app(app(ty_Either, ccb), ccc)) → new_esEs7(zzz4001, zzz3001, ccb, ccc)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCompAux0(zzz220, EQ) → zzz220
new_ltEs15(Right(zzz400000), Left(zzz3300000), cdg, cdh) → False
new_compare29(zzz400000, zzz3300000, False) → new_compare111(zzz400000, zzz3300000, new_ltEs14(zzz400000, zzz3300000))
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(app(ty_@2, chd), che), cdh) → new_ltEs4(zzz400000, zzz3300000, chd, che)
new_ltEs20(zzz400001, zzz3300001, ty_Char) → new_ltEs17(zzz400001, zzz3300001)
new_primEqInt(Neg(Zero), Pos(Zero)) → True
new_primEqInt(Pos(Zero), Neg(Zero)) → True
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Float, cdh) → new_ltEs9(zzz400000, zzz3300000)
new_not(True) → False
new_esEs25(zzz4001, zzz3001, ty_Integer) → new_esEs9(zzz4001, zzz3001)

The set Q consists of the following terms:

new_esEs19(x0, x1, ty_Integer)
new_esEs24(x0, x1, ty_Ordering)
new_ltEs20(x0, x1, app(ty_Maybe, x2))
new_lt13(x0, x1, app(ty_Ratio, x2))
new_lt14(x0, x1, ty_Double)
new_ltEs8(Just(x0), Just(x1), ty_Int)
new_esEs7(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_esEs22(x0, x1, app(app(ty_Either, x2), x3))
new_esEs4(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_ltEs13(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_ltEs15(Left(x0), Left(x1), ty_@0, x2)
new_esEs7(Left(x0), Left(x1), ty_Char, x2)
new_primPlusNat0(Succ(x0), x1)
new_esEs11(x0, x1, ty_@0)
new_primPlusNat0(Zero, x0)
new_pePe(True, x0)
new_ltEs19(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs19(x0, x1, ty_Int)
new_asAs(True, x0)
new_compare26(x0, x1, False, x2, x3)
new_lt13(x0, x1, ty_Ordering)
new_esEs7(Right(x0), Right(x1), x2, app(ty_[], x3))
new_esEs12(False, False)
new_esEs20(x0, x1, app(ty_[], x2))
new_ltEs8(Just(x0), Just(x1), ty_Integer)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_esEs24(x0, x1, app(app(ty_Either, x2), x3))
new_lt11(x0, x1)
new_ltEs19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare111(x0, x1, False)
new_esEs20(x0, x1, ty_Bool)
new_esEs26(x0, x1, ty_Int)
new_ltEs20(x0, x1, app(app(ty_@2, x2), x3))
new_compare15(x0, x1)
new_lt14(x0, x1, ty_Ordering)
new_esEs26(x0, x1, ty_Double)
new_esEs24(x0, x1, ty_@0)
new_primEqInt(Neg(Succ(x0)), Neg(Zero))
new_compare19(Char(x0), Char(x1))
new_primPlusNat1(Succ(x0), Zero)
new_compare28(x0, x1, False)
new_esEs26(x0, x1, app(ty_[], x2))
new_esEs22(x0, x1, ty_Integer)
new_esEs19(x0, x1, app(app(ty_@2, x2), x3))
new_compare6(Double(x0, x1), Double(x2, x3))
new_esEs4(Just(x0), Just(x1), ty_Bool)
new_compare27(Nothing, Nothing, False, x0)
new_esEs11(x0, x1, ty_Float)
new_primCompAux0(x0, LT)
new_esEs7(Left(x0), Left(x1), app(ty_[], x2), x3)
new_ltEs14(True, False)
new_ltEs14(False, True)
new_esEs22(x0, x1, app(ty_[], x2))
new_esEs25(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare25(x0, x1, False, x2, x3, x4)
new_esEs8(GT, GT)
new_primMulInt(Pos(x0), Pos(x1))
new_compare(:(x0, x1), [], x2)
new_ltEs18(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt10(x0, x1)
new_primEqInt(Pos(Succ(x0)), Neg(x1))
new_primEqInt(Neg(Succ(x0)), Pos(x1))
new_esEs7(Left(x0), Left(x1), ty_Double, x2)
new_esEs8(LT, LT)
new_lt20(x0, x1, ty_Double)
new_esEs19(x0, x1, ty_Int)
new_ltEs7(x0, x1)
new_esEs21(x0, x1, app(app(ty_@2, x2), x3))
new_esEs4(Just(x0), Just(x1), app(ty_Ratio, x2))
new_ltEs15(Right(x0), Right(x1), x2, ty_Int)
new_compare11(x0, x1, ty_@0)
new_primEqInt(Pos(Succ(x0)), Pos(Zero))
new_lt13(x0, x1, ty_Double)
new_esEs7(Right(x0), Left(x1), x2, x3)
new_esEs7(Left(x0), Right(x1), x2, x3)
new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_lt13(x0, x1, ty_@0)
new_ltEs6(EQ, EQ)
new_lt20(x0, x1, ty_Integer)
new_esEs22(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs10([], :(x0, x1), x2)
new_esEs7(Left(x0), Left(x1), ty_Ordering, x2)
new_ltEs18(x0, x1, ty_Int)
new_compare11(x0, x1, app(ty_Ratio, x2))
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_lt14(x0, x1, ty_Int)
new_esEs23(x0, x1, app(ty_Maybe, x2))
new_compare11(x0, x1, app(ty_[], x2))
new_gt1(x0, x1)
new_ltEs15(Left(x0), Left(x1), ty_Bool, x2)
new_esEs7(Left(x0), Left(x1), ty_@0, x2)
new_esEs10(:(x0, x1), [], x2)
new_esEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs11(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs6(LT, EQ)
new_esEs7(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_ltEs6(EQ, LT)
new_lt7(x0, x1)
new_esEs24(x0, x1, app(ty_Maybe, x2))
new_esEs11(x0, x1, ty_Integer)
new_esEs20(x0, x1, ty_Float)
new_lt9(x0, x1)
new_primCmpNat0(Succ(x0), Zero)
new_primEqNat0(Zero, Zero)
new_esEs19(x0, x1, app(ty_Maybe, x2))
new_esEs18(x0, x1)
new_ltEs10(x0, x1, x2)
new_lt14(x0, x1, app(app(ty_@2, x2), x3))
new_esEs19(x0, x1, ty_Ordering)
new_esEs21(x0, x1, app(ty_Ratio, x2))
new_lt20(x0, x1, ty_Ordering)
new_esEs19(x0, x1, ty_Char)
new_esEs7(Right(x0), Right(x1), x2, ty_Char)
new_compare114(x0, x1, False, x2, x3)
new_esEs22(x0, x1, ty_Char)
new_ltEs15(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_compare114(x0, x1, True, x2, x3)
new_lt20(x0, x1, ty_@0)
new_esEs23(x0, x1, ty_Char)
new_lt14(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs8(Nothing, Nothing, x0)
new_primMulNat0(Zero, Zero)
new_compare([], :(x0, x1), x2)
new_lt19(x0, x1)
new_lt13(x0, x1, app(app(ty_Either, x2), x3))
new_esEs23(x0, x1, app(app(ty_@2, x2), x3))
new_compare27(Just(x0), Just(x1), False, x2)
new_esEs19(x0, x1, app(app(ty_Either, x2), x3))
new_compare11(x0, x1, ty_Int)
new_esEs4(Just(x0), Just(x1), ty_Int)
new_ltEs18(x0, x1, ty_Bool)
new_primMulNat0(Zero, Succ(x0))
new_compare31(x0, x1)
new_compare11(x0, x1, ty_Double)
new_ltEs8(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_ltEs15(Right(x0), Right(x1), x2, ty_Char)
new_ltEs20(x0, x1, ty_Char)
new_ltEs20(x0, x1, ty_Bool)
new_compare(:(x0, x1), :(x2, x3), x4)
new_primEqInt(Pos(Zero), Neg(Succ(x0)))
new_primEqInt(Neg(Zero), Pos(Succ(x0)))
new_ltEs8(Just(x0), Just(x1), ty_Double)
new_esEs4(Just(x0), Just(x1), ty_Integer)
new_primCmpNat0(Succ(x0), Succ(x1))
new_lt12(x0, x1)
new_lt14(x0, x1, ty_Char)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_ltEs15(Left(x0), Left(x1), ty_Char, x2)
new_compare8(x0, x1)
new_ltEs17(x0, x1)
new_esEs26(x0, x1, ty_Integer)
new_esEs23(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs7(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_esEs4(Just(x0), Just(x1), app(ty_[], x2))
new_lt20(x0, x1, app(ty_Ratio, x2))
new_esEs14(@0, @0)
new_ltEs8(Just(x0), Just(x1), app(ty_Ratio, x2))
new_compare12(Float(x0, x1), Float(x2, x3))
new_compare27(x0, x1, True, x2)
new_esEs19(x0, x1, ty_Double)
new_ltEs20(x0, x1, app(ty_[], x2))
new_ltEs15(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_lt8(x0, x1, x2, x3, x4)
new_esEs23(x0, x1, ty_@0)
new_esEs11(x0, x1, ty_Int)
new_primPlusNat1(Succ(x0), Succ(x1))
new_ltEs6(GT, LT)
new_ltEs6(LT, GT)
new_esEs23(x0, x1, ty_Ordering)
new_compare110(x0, x1, True, x2)
new_ltEs19(x0, x1, ty_Integer)
new_ltEs11(x0, x1, x2)
new_esEs4(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_compare13(x0, x1, x2)
new_esEs10(:(x0, x1), :(x2, x3), x4)
new_ltEs15(Right(x0), Left(x1), x2, x3)
new_ltEs15(Left(x0), Right(x1), x2, x3)
new_esEs23(x0, x1, app(app(ty_Either, x2), x3))
new_pePe(False, x0)
new_lt4(x0, x1, x2)
new_esEs26(x0, x1, ty_Char)
new_ltEs8(Just(x0), Just(x1), ty_@0)
new_esEs30(Nothing, x0)
new_esEs27(x0, x1, ty_Integer)
new_compare29(x0, x1, True)
new_ltEs18(x0, x1, app(app(ty_@2, x2), x3))
new_esEs11(x0, x1, ty_Double)
new_lt20(x0, x1, app(app(ty_@2, x2), x3))
new_compare11(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs18(x0, x1, ty_Char)
new_esEs19(x0, x1, app(ty_[], x2))
new_ltEs18(x0, x1, app(ty_Maybe, x2))
new_esEs7(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_esEs23(x0, x1, ty_Float)
new_esEs22(x0, x1, app(app(ty_@2, x2), x3))
new_esEs21(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs8(Just(x0), Just(x1), app(ty_[], x2))
new_primMulNat0(Succ(x0), Zero)
new_primEqInt(Neg(Zero), Neg(Succ(x0)))
new_esEs24(x0, x1, app(ty_Ratio, x2))
new_ltEs19(x0, x1, app(ty_Maybe, x2))
new_ltEs15(Right(x0), Right(x1), x2, ty_Bool)
new_primPlusNat1(Zero, Zero)
new_ltEs18(x0, x1, ty_Integer)
new_esEs26(x0, x1, ty_Bool)
new_esEs26(x0, x1, ty_Float)
new_esEs25(x0, x1, app(app(ty_@2, x2), x3))
new_esEs16(Double(x0, x1), Double(x2, x3))
new_esEs21(x0, x1, app(ty_[], x2))
new_esEs25(x0, x1, ty_Char)
new_ltEs19(x0, x1, ty_@0)
new_ltEs15(Left(x0), Left(x1), ty_Ordering, x2)
new_ltEs15(Left(x0), Left(x1), ty_Integer, x2)
new_esEs25(x0, x1, app(ty_Maybe, x2))
new_primCompAux1(x0, x1, x2, x3)
new_ltEs20(x0, x1, ty_Int)
new_esEs24(x0, x1, app(ty_[], x2))
new_esEs25(x0, x1, app(ty_[], x2))
new_lt14(x0, x1, app(ty_[], x2))
new_compare16(x0, x1, x2, x3)
new_esEs22(x0, x1, app(ty_Maybe, x2))
new_ltEs8(Just(x0), Nothing, x1)
new_ltEs18(x0, x1, ty_Float)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_esEs26(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs18(x0, x1, app(app(ty_Either, x2), x3))
new_compare5(:%(x0, x1), :%(x2, x3), ty_Integer)
new_esEs20(x0, x1, ty_Int)
new_ltEs15(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_ltEs8(Nothing, Just(x0), x1)
new_esEs4(Just(x0), Just(x1), ty_Ordering)
new_lt6(x0, x1)
new_esEs4(Nothing, Nothing, x0)
new_lt14(x0, x1, ty_Bool)
new_esEs21(x0, x1, ty_Char)
new_esEs21(x0, x1, ty_Double)
new_ltEs15(Left(x0), Left(x1), app(ty_[], x2), x3)
new_ltEs9(x0, x1)
new_esEs25(x0, x1, ty_Float)
new_compare11(x0, x1, ty_Integer)
new_compare27(Nothing, Just(x0), False, x1)
new_esEs21(x0, x1, ty_Bool)
new_primMulNat0(Succ(x0), Succ(x1))
new_esEs21(x0, x1, app(ty_Maybe, x2))
new_lt20(x0, x1, ty_Bool)
new_esEs26(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs20(x0, x1, app(app(ty_Either, x2), x3))
new_lt16(x0, x1)
new_compare17(x0, x1, x2, x3)
new_compare18(Integer(x0), Integer(x1))
new_esEs7(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_esEs7(Left(x0), Left(x1), ty_Float, x2)
new_compare11(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs12(True, True)
new_esEs24(x0, x1, ty_Integer)
new_esEs4(Just(x0), Just(x1), ty_Float)
new_esEs21(x0, x1, ty_Ordering)
new_esEs13(:%(x0, x1), :%(x2, x3), x4)
new_esEs24(x0, x1, ty_Double)
new_ltEs19(x0, x1, ty_Bool)
new_esEs7(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_esEs7(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_lt13(x0, x1, ty_Int)
new_lt5(x0, x1, x2)
new_lt13(x0, x1, app(ty_Maybe, x2))
new_compare112(x0, x1, False, x2, x3, x4)
new_esEs7(Left(x0), Left(x1), ty_Bool, x2)
new_esEs11(x0, x1, app(ty_Ratio, x2))
new_ltEs15(Right(x0), Right(x1), x2, ty_Double)
new_lt14(x0, x1, ty_Integer)
new_ltEs18(x0, x1, ty_@0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_lt14(x0, x1, app(ty_Ratio, x2))
new_lt13(x0, x1, ty_Char)
new_primEqInt(Neg(Zero), Pos(Zero))
new_primEqInt(Pos(Zero), Neg(Zero))
new_primEqNat0(Succ(x0), Succ(x1))
new_compare14(x0, x1, x2, x3, x4)
new_esEs24(x0, x1, ty_Char)
new_ltEs15(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_esEs21(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs8(Just(x0), Just(x1), ty_Float)
new_esEs25(x0, x1, app(ty_Ratio, x2))
new_esEs26(x0, x1, ty_Ordering)
new_esEs26(x0, x1, app(ty_Maybe, x2))
new_esEs19(x0, x1, ty_Float)
new_esEs20(x0, x1, ty_@0)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_compare11(x0, x1, ty_Ordering)
new_lt20(x0, x1, ty_Float)
new_esEs24(x0, x1, ty_Int)
new_compare110(x0, x1, False, x2)
new_primEqInt(Neg(Zero), Neg(Zero))
new_asAs(False, x0)
new_ltEs15(Right(x0), Right(x1), x2, ty_Integer)
new_lt13(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs4(Just(x0), Just(x1), ty_Double)
new_lt15(x0, x1, x2)
new_esEs5(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_ltEs20(x0, x1, app(ty_Ratio, x2))
new_compare24(x0, x1, True, x2, x3)
new_compare113(x0, x1, True)
new_esEs4(Just(x0), Nothing, x1)
new_lt13(x0, x1, ty_Float)
new_esEs30(Just(x0), x1)
new_primCmpNat0(Zero, Succ(x0))
new_lt14(x0, x1, app(ty_Maybe, x2))
new_esEs26(x0, x1, app(app(ty_@2, x2), x3))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_ltEs19(x0, x1, app(ty_Ratio, x2))
new_esEs11(x0, x1, ty_Bool)
new_esEs22(x0, x1, ty_Double)
new_compare25(x0, x1, True, x2, x3, x4)
new_esEs25(x0, x1, ty_Bool)
new_esEs28(x0, x1, ty_Int)
new_ltEs15(Right(x0), Right(x1), x2, ty_Float)
new_esEs15(Float(x0, x1), Float(x2, x3))
new_primMulInt(Neg(x0), Neg(x1))
new_compare5(:%(x0, x1), :%(x2, x3), ty_Int)
new_esEs20(x0, x1, app(app(ty_@2, x2), x3))
new_esEs20(x0, x1, ty_Char)
new_ltEs19(x0, x1, ty_Char)
new_esEs7(Right(x0), Right(x1), x2, ty_Ordering)
new_esEs23(x0, x1, app(ty_Ratio, x2))
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_compare29(x0, x1, False)
new_esEs20(x0, x1, ty_Double)
new_ltEs6(GT, GT)
new_lt13(x0, x1, ty_Bool)
new_esEs23(x0, x1, ty_Integer)
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_compare27(Just(x0), Nothing, False, x1)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primEqInt(Pos(Zero), Pos(Succ(x0)))
new_primCmpNat0(Zero, Zero)
new_ltEs8(Just(x0), Just(x1), ty_Char)
new_esEs27(x0, x1, ty_Int)
new_ltEs6(LT, LT)
new_ltEs15(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_esEs22(x0, x1, ty_Bool)
new_primPlusNat1(Zero, Succ(x0))
new_ltEs18(x0, x1, ty_Double)
new_esEs22(x0, x1, ty_Int)
new_lt13(x0, x1, ty_Integer)
new_lt18(x0, x1, x2, x3)
new_esEs28(x0, x1, ty_Integer)
new_esEs17(Char(x0), Char(x1))
new_esEs11(x0, x1, app(ty_Maybe, x2))
new_lt20(x0, x1, ty_Char)
new_esEs20(x0, x1, app(ty_Maybe, x2))
new_esEs25(x0, x1, ty_Integer)
new_ltEs15(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_lt17(x0, x1, x2, x3)
new_esEs4(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_esEs22(x0, x1, app(ty_Ratio, x2))
new_esEs7(Right(x0), Right(x1), x2, ty_Integer)
new_ltEs15(Left(x0), Left(x1), ty_Double, x2)
new_esEs24(x0, x1, app(app(ty_@2, x2), x3))
new_esEs23(x0, x1, ty_Double)
new_esEs4(Just(x0), Just(x1), ty_Char)
new_ltEs20(x0, x1, ty_Ordering)
new_esEs7(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_lt13(x0, x1, app(app(ty_@2, x2), x3))
new_esEs12(True, False)
new_esEs12(False, True)
new_compare28(x0, x1, True)
new_sr(x0, x1)
new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_compare9(@0, @0)
new_esEs11(x0, x1, ty_Char)
new_ltEs19(x0, x1, ty_Double)
new_fsEs(x0)
new_ltEs14(True, True)
new_esEs21(x0, x1, ty_Integer)
new_lt20(x0, x1, app(ty_Maybe, x2))
new_esEs6(@2(x0, x1), @2(x2, x3), x4, x5)
new_ltEs14(False, False)
new_compare([], [], x0)
new_esEs11(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs18(x0, x1, app(ty_[], x2))
new_esEs20(x0, x1, app(ty_Ratio, x2))
new_ltEs15(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_ltEs8(Just(x0), Just(x1), app(ty_Maybe, x2))
new_esEs7(Right(x0), Right(x1), x2, ty_Bool)
new_ltEs5(x0, x1)
new_esEs25(x0, x1, ty_Int)
new_esEs11(x0, x1, ty_Ordering)
new_esEs23(x0, x1, ty_Bool)
new_esEs7(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_ltEs20(x0, x1, ty_Float)
new_primEqNat0(Zero, Succ(x0))
new_not(True)
new_esEs11(x0, x1, app(ty_[], x2))
new_lt14(x0, x1, app(app(ty_Either, x2), x3))
new_primCompAux0(x0, EQ)
new_esEs20(x0, x1, app(app(ty_Either, x2), x3))
new_compare112(x0, x1, True, x2, x3, x4)
new_ltEs15(Left(x0), Left(x1), ty_Float, x2)
new_esEs25(x0, x1, ty_Ordering)
new_ltEs20(x0, x1, ty_Integer)
new_esEs20(x0, x1, ty_Integer)
new_esEs26(x0, x1, ty_@0)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_compare111(x0, x1, True)
new_ltEs15(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_not(False)
new_esEs21(x0, x1, ty_@0)
new_ltEs6(EQ, GT)
new_ltEs6(GT, EQ)
new_lt13(x0, x1, app(ty_[], x2))
new_ltEs15(Left(x0), Left(x1), ty_Int, x2)
new_lt14(x0, x1, ty_Float)
new_ltEs20(x0, x1, ty_@0)
new_esEs23(x0, x1, ty_Int)
new_ltEs19(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs8(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_esEs10([], [], x0)
new_ltEs19(x0, x1, ty_Ordering)
new_esEs24(x0, x1, ty_Bool)
new_ltEs15(Right(x0), Right(x1), x2, ty_@0)
new_ltEs15(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_ltEs15(Right(x0), Right(x1), x2, ty_Ordering)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_compare11(x0, x1, app(app(ty_Either, x2), x3))
new_lt14(x0, x1, ty_@0)
new_ltEs8(Just(x0), Just(x1), ty_Ordering)
new_esEs7(Right(x0), Right(x1), x2, ty_Int)
new_esEs4(Just(x0), Just(x1), ty_@0)
new_esEs25(x0, x1, ty_Double)
new_lt20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs19(x0, x1, app(ty_[], x2))
new_ltEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs4(Nothing, Just(x0), x1)
new_esEs25(x0, x1, app(app(ty_Either, x2), x3))
new_compare11(x0, x1, app(ty_Maybe, x2))
new_esEs11(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare7(x0, x1)
new_esEs24(x0, x1, ty_Float)
new_esEs7(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_esEs23(x0, x1, app(ty_[], x2))
new_esEs4(Just(x0), Just(x1), app(ty_Maybe, x2))
new_ltEs18(x0, x1, app(ty_Ratio, x2))
new_lt20(x0, x1, app(app(ty_Either, x2), x3))
new_esEs19(x0, x1, ty_Bool)
new_esEs25(x0, x1, ty_@0)
new_esEs7(Right(x0), Right(x1), x2, ty_Double)
new_esEs7(Right(x0), Right(x1), x2, ty_Float)
new_esEs7(Left(x0), Left(x1), ty_Integer, x2)
new_lt20(x0, x1, ty_Int)
new_sr0(Integer(x0), Integer(x1))
new_esEs20(x0, x1, ty_Ordering)
new_compare11(x0, x1, ty_Char)
new_lt20(x0, x1, app(ty_[], x2))
new_ltEs4(@2(x0, x1), @2(x2, x3), x4, x5)
new_ltEs15(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_primEqInt(Pos(Zero), Pos(Zero))
new_esEs26(x0, x1, app(ty_Ratio, x2))
new_esEs19(x0, x1, app(ty_Ratio, x2))
new_esEs22(x0, x1, ty_Ordering)
new_esEs21(x0, x1, ty_Int)
new_esEs7(Left(x0), Left(x1), ty_Int, x2)
new_esEs24(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_primCompAux0(x0, GT)
new_ltEs18(x0, x1, ty_Ordering)
new_esEs9(Integer(x0), Integer(x1))
new_esEs19(x0, x1, ty_@0)
new_esEs7(Right(x0), Right(x1), x2, ty_@0)
new_esEs22(x0, x1, ty_Float)
new_compare24(x0, x1, False, x2, x3)
new_compare10(x0, x1, True, x2, x3)
new_esEs21(x0, x1, ty_Float)
new_ltEs20(x0, x1, ty_Double)
new_primEqNat0(Succ(x0), Zero)
new_esEs22(x0, x1, ty_@0)
new_compare10(x0, x1, False, x2, x3)
new_compare11(x0, x1, ty_Float)
new_ltEs8(Just(x0), Just(x1), ty_Bool)
new_ltEs8(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_compare113(x0, x1, False)
new_compare26(x0, x1, True, x2, x3)
new_ltEs12(x0, x1)
new_ltEs19(x0, x1, ty_Float)
new_ltEs16(x0, x1)
new_ltEs15(Right(x0), Right(x1), x2, app(ty_[], x3))
new_compare11(x0, x1, ty_Bool)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))

We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_splitGT10(zzz340, zzz341, zzz342, zzz343, zzz344, True, h, ba) → new_splitGT0(zzz343, h, ba)
new_splitGT20(zzz340, zzz341, zzz342, zzz343, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), True, h, ba) → new_splitGT20(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, new_gt1(zzz3440, h), h, ba)
new_splitGT0(Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), h, ba) → new_splitGT20(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, new_gt1(zzz3440, h), h, ba)
new_splitGT20(zzz340, zzz341, zzz342, zzz343, zzz344, False, h, ba) → new_splitGT10(zzz340, zzz341, zzz342, zzz343, zzz344, new_lt15(Nothing, zzz340, h), h, ba)

The TRS R consists of the following rules:

new_esEs4(Just(zzz4000), Just(zzz3000), app(ty_Maybe, dbf)) → new_esEs4(zzz4000, zzz3000, dbf)
new_esEs23(zzz400001, zzz3300001, app(app(ty_Either, bfg), bfh)) → new_esEs7(zzz400001, zzz3300001, bfg, bfh)
new_ltEs19(zzz40000, zzz330000, ty_Integer) → new_ltEs16(zzz40000, zzz330000)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_esEs7(Left(zzz4000), Left(zzz3000), app(app(ty_Either, fb), fc), fa) → new_esEs7(zzz4000, zzz3000, fb, fc)
new_ltEs19(zzz40000, zzz330000, app(ty_Ratio, cdd)) → new_ltEs11(zzz40000, zzz330000, cdd)
new_esEs21(zzz4002, zzz3002, app(app(ty_@2, bea), beb)) → new_esEs6(zzz4002, zzz3002, bea, beb)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, app(ty_Maybe, dab)) → new_ltEs8(zzz400000, zzz3300000, dab)
new_lt14(zzz400000, zzz3300000, ty_Integer) → new_lt7(zzz400000, zzz3300000)
new_ltEs18(zzz400002, zzz3300002, ty_Int) → new_ltEs12(zzz400002, zzz3300002)
new_esEs24(zzz4000, zzz3000, app(app(app(ty_@3, cbd), cbe), cbf)) → new_esEs5(zzz4000, zzz3000, cbd, cbe, cbf)
new_esEs17(Char(zzz4000), Char(zzz3000)) → new_primEqNat0(zzz4000, zzz3000)
new_esEs20(zzz4001, zzz3001, ty_Bool) → new_esEs12(zzz4001, zzz3001)
new_esEs7(Left(zzz4000), Left(zzz3000), app(ty_Maybe, ff), fa) → new_esEs4(zzz4000, zzz3000, ff)
new_esEs24(zzz4000, zzz3000, ty_Char) → new_esEs17(zzz4000, zzz3000)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, ty_Float) → new_ltEs9(zzz400000, zzz3300000)
new_ltEs20(zzz400001, zzz3300001, app(ty_[], cfc)) → new_ltEs10(zzz400001, zzz3300001, cfc)
new_compare([], :(zzz3300000, zzz3300001), bf) → LT
new_compare10(zzz400000, zzz3300000, True, bd, be) → LT
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(app(app(ty_@3, bhg), bhh), caa)) → new_ltEs13(zzz400000, zzz3300000, bhg, bhh, caa)
new_lt13(zzz400001, zzz3300001, app(app(app(ty_@3, bfb), bfc), bfd)) → new_lt8(zzz400001, zzz3300001, bfb, bfc, bfd)
new_esEs24(zzz4000, zzz3000, app(ty_Maybe, cbc)) → new_esEs4(zzz4000, zzz3000, cbc)
new_esEs19(zzz4000, zzz3000, ty_Float) → new_esEs15(zzz4000, zzz3000)
new_esEs4(Nothing, Just(zzz3000), dbb) → False
new_esEs4(Just(zzz4000), Nothing, dbb) → False
new_lt20(zzz400000, zzz3300000, app(app(app(ty_@3, ced), cee), cef)) → new_lt8(zzz400000, zzz3300000, ced, cee, cef)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Char) → new_esEs17(zzz4000, zzz3000)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_@0) → new_esEs14(zzz4000, zzz3000)
new_esEs25(zzz4001, zzz3001, ty_Char) → new_esEs17(zzz4001, zzz3001)
new_ltEs20(zzz400001, zzz3300001, ty_Double) → new_ltEs7(zzz400001, zzz3300001)
new_primMulNat0(Zero, Zero) → Zero
new_esEs7(Left(zzz4000), Left(zzz3000), app(app(app(ty_@3, fg), fh), ga), fa) → new_esEs5(zzz4000, zzz3000, fg, fh, ga)
new_esEs26(zzz400000, zzz3300000, ty_Float) → new_esEs15(zzz400000, zzz3300000)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, ty_Double) → new_esEs16(zzz4000, zzz3000)
new_compare(:(zzz400000, zzz400001), [], bf) → GT
new_compare11(zzz400000, zzz3300000, ty_Int) → new_compare7(zzz400000, zzz3300000)
new_lt14(zzz400000, zzz3300000, ty_Ordering) → new_lt6(zzz400000, zzz3300000)
new_compare29(zzz400000, zzz3300000, True) → EQ
new_esEs23(zzz400001, zzz3300001, app(ty_Ratio, beh)) → new_esEs13(zzz400001, zzz3300001, beh)
new_esEs12(True, True) → True
new_ltEs18(zzz400002, zzz3300002, ty_Integer) → new_ltEs16(zzz400002, zzz3300002)
new_ltEs18(zzz400002, zzz3300002, ty_@0) → new_ltEs5(zzz400002, zzz3300002)
new_esEs20(zzz4001, zzz3001, app(ty_Maybe, bcb)) → new_esEs4(zzz4001, zzz3001, bcb)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Double, cdh) → new_ltEs7(zzz400000, zzz3300000)
new_esEs21(zzz4002, zzz3002, app(ty_[], bdh)) → new_esEs10(zzz4002, zzz3002, bdh)
new_esEs22(zzz400000, zzz3300000, ty_Char) → new_esEs17(zzz400000, zzz3300000)
new_ltEs20(zzz400001, zzz3300001, app(ty_Maybe, cfe)) → new_ltEs8(zzz400001, zzz3300001, cfe)
new_esEs23(zzz400001, zzz3300001, ty_Bool) → new_esEs12(zzz400001, zzz3300001)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_ltEs18(zzz400002, zzz3300002, ty_Char) → new_ltEs17(zzz400002, zzz3300002)
new_compare11(zzz400000, zzz3300000, app(ty_Maybe, ca)) → new_compare13(zzz400000, zzz3300000, ca)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, ty_@0) → new_ltEs5(zzz400000, zzz3300000)
new_ltEs14(False, True) → True
new_esEs24(zzz4000, zzz3000, ty_@0) → new_esEs14(zzz4000, zzz3000)
new_esEs25(zzz4001, zzz3001, ty_Double) → new_esEs16(zzz4001, zzz3001)
new_lt14(zzz400000, zzz3300000, app(app(ty_Either, hh), baa)) → new_lt18(zzz400000, zzz3300000, hh, baa)
new_esEs23(zzz400001, zzz3300001, app(ty_Maybe, bfa)) → new_esEs4(zzz400001, zzz3300001, bfa)
new_compare26(zzz400000, zzz3300000, False, hh, baa) → new_compare114(zzz400000, zzz3300000, new_ltEs15(zzz400000, zzz3300000, hh, baa), hh, baa)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, app(ty_[], he)) → new_esEs10(zzz4000, zzz3000, he)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Char, cdh) → new_ltEs17(zzz400000, zzz3300000)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, app(app(app(ty_@3, hb), hc), hd)) → new_esEs5(zzz4000, zzz3000, hb, hc, hd)
new_esEs26(zzz400000, zzz3300000, app(ty_[], cea)) → new_esEs10(zzz400000, zzz3300000, cea)
new_esEs20(zzz4001, zzz3001, app(ty_Ratio, bca)) → new_esEs13(zzz4001, zzz3001, bca)
new_compare11(zzz400000, zzz3300000, ty_Integer) → new_compare18(zzz400000, zzz3300000)
new_esEs22(zzz400000, zzz3300000, ty_Integer) → new_esEs9(zzz400000, zzz3300000)
new_compare15(zzz400000, zzz3300000) → new_compare29(zzz400000, zzz3300000, new_esEs12(zzz400000, zzz3300000))
new_lt13(zzz400001, zzz3300001, app(app(ty_Either, bfg), bfh)) → new_lt18(zzz400001, zzz3300001, bfg, bfh)
new_ltEs9(zzz40000, zzz330000) → new_fsEs(new_compare12(zzz40000, zzz330000))
new_ltEs20(zzz400001, zzz3300001, ty_Integer) → new_ltEs16(zzz400001, zzz3300001)
new_lt20(zzz400000, zzz3300000, app(ty_Maybe, cec)) → new_lt15(zzz400000, zzz3300000, cec)
new_lt14(zzz400000, zzz3300000, ty_Char) → new_lt12(zzz400000, zzz3300000)
new_esEs19(zzz4000, zzz3000, app(app(app(ty_@3, bba), bbb), bbc)) → new_esEs5(zzz4000, zzz3000, bba, bbb, bbc)
new_esEs19(zzz4000, zzz3000, ty_@0) → new_esEs14(zzz4000, zzz3000)
new_esEs26(zzz400000, zzz3300000, app(ty_Maybe, cec)) → new_esEs4(zzz400000, zzz3300000, cec)
new_esEs20(zzz4001, zzz3001, app(app(ty_@2, bcg), bch)) → new_esEs6(zzz4001, zzz3001, bcg, bch)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, app(app(ty_@2, daf), dag)) → new_ltEs4(zzz400000, zzz3300000, daf, dag)
new_lt13(zzz400001, zzz3300001, ty_Char) → new_lt12(zzz400001, zzz3300001)
new_esEs20(zzz4001, zzz3001, ty_@0) → new_esEs14(zzz4001, zzz3001)
new_esEs22(zzz400000, zzz3300000, app(app(ty_Either, hh), baa)) → new_esEs7(zzz400000, zzz3300000, hh, baa)
new_lt13(zzz400001, zzz3300001, app(ty_[], beg)) → new_lt4(zzz400001, zzz3300001, beg)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Ordering, cdh) → new_ltEs6(zzz400000, zzz3300000)
new_lt7(zzz400000, zzz3300000) → new_esEs8(new_compare18(zzz400000, zzz3300000), LT)
new_esEs25(zzz4001, zzz3001, app(ty_[], cda)) → new_esEs10(zzz4001, zzz3001, cda)
new_esEs28(zzz4001, zzz3001, ty_Int) → new_esEs18(zzz4001, zzz3001)
new_pePe(False, zzz214) → zzz214
new_esEs19(zzz4000, zzz3000, app(ty_[], bbd)) → new_esEs10(zzz4000, zzz3000, bbd)
new_compare27(Just(zzz40000), Just(zzz330000), False, bah) → new_compare110(zzz40000, zzz330000, new_ltEs19(zzz40000, zzz330000, bah), bah)
new_esEs7(Left(zzz4000), Left(zzz3000), app(ty_[], gb), fa) → new_esEs10(zzz4000, zzz3000, gb)
new_esEs7(Left(zzz4000), Right(zzz3000), ge, fa) → False
new_esEs7(Right(zzz4000), Left(zzz3000), ge, fa) → False
new_esEs27(zzz4000, zzz3000, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_compare11(zzz400000, zzz3300000, app(ty_[], bg)) → new_compare(zzz400000, zzz3300000, bg)
new_lt20(zzz400000, zzz3300000, ty_Bool) → new_lt11(zzz400000, zzz3300000)
new_lt15(zzz4000, zzz33000, bah) → new_esEs8(new_compare13(zzz4000, zzz33000, bah), LT)
new_lt9(zzz4000, zzz33000) → new_esEs8(new_compare7(zzz4000, zzz33000), LT)
new_esEs20(zzz4001, zzz3001, ty_Double) → new_esEs16(zzz4001, zzz3001)
new_ltEs19(zzz40000, zzz330000, app(app(ty_@2, cde), cdf)) → new_ltEs4(zzz40000, zzz330000, cde, cdf)
new_lt4(zzz400000, zzz3300000, bb) → new_esEs8(new_compare(zzz400000, zzz3300000, bb), LT)
new_esEs11(zzz4000, zzz3000, ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_lt20(zzz400000, zzz3300000, ty_Float) → new_lt10(zzz400000, zzz3300000)
new_lt6(zzz400000, zzz3300000) → new_esEs8(new_compare8(zzz400000, zzz3300000), LT)
new_ltEs10(zzz40000, zzz330000, bf) → new_fsEs(new_compare(zzz40000, zzz330000, bf))
new_esEs26(zzz400000, zzz3300000, ty_Bool) → new_esEs12(zzz400000, zzz3300000)
new_lt20(zzz400000, zzz3300000, app(app(ty_@2, ceg), ceh)) → new_lt17(zzz400000, zzz3300000, ceg, ceh)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_ltEs6(GT, EQ) → False
new_esEs22(zzz400000, zzz3300000, ty_Ordering) → new_esEs8(zzz400000, zzz3300000)
new_esEs19(zzz4000, zzz3000, app(app(ty_Either, bae), baf)) → new_esEs7(zzz4000, zzz3000, bae, baf)
new_esEs21(zzz4002, zzz3002, ty_Int) → new_esEs18(zzz4002, zzz3002)
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_compare111(zzz400000, zzz3300000, False) → GT
new_esEs18(zzz400, zzz300) → new_primEqInt(zzz400, zzz300)
new_compare111(zzz400000, zzz3300000, True) → LT
new_ltEs20(zzz400001, zzz3300001, app(app(ty_@2, cga), cgb)) → new_ltEs4(zzz400001, zzz3300001, cga, cgb)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_esEs22(zzz400000, zzz3300000, ty_Float) → new_esEs15(zzz400000, zzz3300000)
new_ltEs11(zzz40000, zzz330000, cdd) → new_fsEs(new_compare5(zzz40000, zzz330000, cdd))
new_ltEs8(Nothing, Just(zzz3300000), bhc) → True
new_ltEs20(zzz400001, zzz3300001, ty_Bool) → new_ltEs14(zzz400001, zzz3300001)
new_compare27(Nothing, Just(zzz330000), False, bah) → LT
new_lt20(zzz400000, zzz3300000, ty_Ordering) → new_lt6(zzz400000, zzz3300000)
new_esEs25(zzz4001, zzz3001, app(app(ty_@2, cdb), cdc)) → new_esEs6(zzz4001, zzz3001, cdb, cdc)
new_esEs8(LT, LT) → True
new_ltEs4(@2(zzz400000, zzz400001), @2(zzz3300000, zzz3300001), cde, cdf) → new_pePe(new_lt20(zzz400000, zzz3300000, cde), new_asAs(new_esEs26(zzz400000, zzz3300000, cde), new_ltEs20(zzz400001, zzz3300001, cdf)))
new_compare25(zzz400000, zzz3300000, True, db, dc, dd) → EQ
new_esEs19(zzz4000, zzz3000, app(ty_Maybe, bah)) → new_esEs4(zzz4000, zzz3000, bah)
new_esEs21(zzz4002, zzz3002, app(ty_Ratio, bdc)) → new_esEs13(zzz4002, zzz3002, bdc)
new_lt13(zzz400001, zzz3300001, ty_Int) → new_lt9(zzz400001, zzz3300001)
new_compare17(zzz400000, zzz3300000, hh, baa) → new_compare26(zzz400000, zzz3300000, new_esEs7(zzz400000, zzz3300000, hh, baa), hh, baa)
new_esEs19(zzz4000, zzz3000, ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_esEs25(zzz4001, zzz3001, ty_Ordering) → new_esEs8(zzz4001, zzz3001)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Int) → new_ltEs12(zzz400000, zzz3300000)
new_esEs25(zzz4001, zzz3001, app(ty_Ratio, ccd)) → new_esEs13(zzz4001, zzz3001, ccd)
new_esEs24(zzz4000, zzz3000, app(app(ty_Either, cah), cba)) → new_esEs7(zzz4000, zzz3000, cah, cba)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Double) → new_ltEs7(zzz400000, zzz3300000)
new_lt14(zzz400000, zzz3300000, ty_@0) → new_lt16(zzz400000, zzz3300000)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, ty_Float) → new_esEs15(zzz4000, zzz3000)
new_esEs24(zzz4000, zzz3000, app(app(ty_@2, cbh), cca)) → new_esEs6(zzz4000, zzz3000, cbh, cca)
new_esEs22(zzz400000, zzz3300000, ty_Int) → new_esEs18(zzz400000, zzz3300000)
new_pePe(True, zzz214) → True
new_primEqNat0(Zero, Zero) → True
new_esEs26(zzz400000, zzz3300000, ty_Char) → new_esEs17(zzz400000, zzz3300000)
new_esEs19(zzz4000, zzz3000, app(ty_Ratio, bag)) → new_esEs13(zzz4000, zzz3000, bag)
new_esEs14(@0, @0) → True
new_esEs23(zzz400001, zzz3300001, ty_Integer) → new_esEs9(zzz400001, zzz3300001)
new_esEs26(zzz400000, zzz3300000, app(ty_Ratio, ceb)) → new_esEs13(zzz400000, zzz3300000, ceb)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Bool) → new_ltEs14(zzz400000, zzz3300000)
new_ltEs19(zzz40000, zzz330000, ty_@0) → new_ltEs5(zzz40000, zzz330000)
new_lt20(zzz400000, zzz3300000, ty_Integer) → new_lt7(zzz400000, zzz3300000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(ty_[], cgf), cdh) → new_ltEs10(zzz400000, zzz3300000, cgf)
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Ordering, fa) → new_esEs8(zzz4000, zzz3000)
new_lt13(zzz400001, zzz3300001, ty_Float) → new_lt10(zzz400001, zzz3300001)
new_compare(:(zzz400000, zzz400001), :(zzz3300000, zzz3300001), bf) → new_primCompAux1(zzz400000, zzz3300000, new_compare(zzz400001, zzz3300001, bf), bf)
new_ltEs19(zzz40000, zzz330000, ty_Ordering) → new_ltEs6(zzz40000, zzz330000)
new_sr(zzz4001, zzz3001) → new_primMulInt(zzz4001, zzz3001)
new_esEs4(Just(zzz4000), Just(zzz3000), app(ty_[], dcb)) → new_esEs10(zzz4000, zzz3000, dcb)
new_compare7(zzz400, zzz3300) → new_primCmpInt(zzz400, zzz3300)
new_esEs24(zzz4000, zzz3000, ty_Double) → new_esEs16(zzz4000, zzz3000)
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(app(ty_Either, cad), cae)) → new_ltEs15(zzz400000, zzz3300000, cad, cae)
new_compare12(Float(zzz400000, zzz400001), Float(zzz3300000, zzz3300001)) → new_compare7(new_sr(zzz400000, zzz3300000), new_sr(zzz400001, zzz3300001))
new_esEs26(zzz400000, zzz3300000, ty_Ordering) → new_esEs8(zzz400000, zzz3300000)
new_ltEs6(EQ, GT) → True
new_esEs8(GT, GT) → True
new_ltEs20(zzz400001, zzz3300001, app(ty_Ratio, cfd)) → new_ltEs11(zzz400001, zzz3300001, cfd)
new_esEs20(zzz4001, zzz3001, ty_Integer) → new_esEs9(zzz4001, zzz3001)
new_esEs21(zzz4002, zzz3002, ty_Double) → new_esEs16(zzz4002, zzz3002)
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_ltEs18(zzz400002, zzz3300002, ty_Ordering) → new_ltEs6(zzz400002, zzz3300002)
new_esEs11(zzz4000, zzz3000, ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, app(app(ty_Either, gf), gg)) → new_esEs7(zzz4000, zzz3000, gf, gg)
new_esEs12(False, False) → True
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(ty_[], bhd)) → new_ltEs10(zzz400000, zzz3300000, bhd)
new_esEs8(GT, LT) → False
new_esEs8(LT, GT) → False
new_ltEs18(zzz400002, zzz3300002, ty_Double) → new_ltEs7(zzz400002, zzz3300002)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_@0, cdh) → new_ltEs5(zzz400000, zzz3300000)
new_primEqInt(Neg(Succ(zzz40000)), Neg(Succ(zzz30000))) → new_primEqNat0(zzz40000, zzz30000)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, ty_Char) → new_esEs17(zzz4000, zzz3000)
new_lt14(zzz400000, zzz3300000, app(ty_[], bb)) → new_lt4(zzz400000, zzz3300000, bb)
new_esEs20(zzz4001, zzz3001, ty_Ordering) → new_esEs8(zzz4001, zzz3001)
new_esEs23(zzz400001, zzz3300001, ty_Ordering) → new_esEs8(zzz400001, zzz3300001)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_compare27(Just(zzz40000), Nothing, False, bah) → GT
new_primCompAux1(zzz400000, zzz3300000, zzz215, bf) → new_primCompAux0(zzz215, new_compare11(zzz400000, zzz3300000, bf))
new_lt14(zzz400000, zzz3300000, app(ty_Ratio, bc)) → new_lt5(zzz400000, zzz3300000, bc)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, app(app(app(ty_@3, dac), dad), dae)) → new_ltEs13(zzz400000, zzz3300000, dac, dad, dae)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, app(ty_Ratio, gh)) → new_esEs13(zzz4000, zzz3000, gh)
new_ltEs19(zzz40000, zzz330000, ty_Float) → new_ltEs9(zzz40000, zzz330000)
new_compare27(Nothing, Nothing, False, bah) → LT
new_esEs25(zzz4001, zzz3001, ty_Int) → new_esEs18(zzz4001, zzz3001)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Char) → new_ltEs17(zzz400000, zzz3300000)
new_primEqInt(Neg(Zero), Neg(Zero)) → True
new_esEs7(Left(zzz4000), Left(zzz3000), app(ty_Ratio, fd), fa) → new_esEs13(zzz4000, zzz3000, fd)
new_esEs7(Left(zzz4000), Left(zzz3000), app(app(ty_@2, gc), gd), fa) → new_esEs6(zzz4000, zzz3000, gc, gd)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, ty_Double) → new_ltEs7(zzz400000, zzz3300000)
new_ltEs6(EQ, EQ) → True
new_esEs11(zzz4000, zzz3000, app(app(app(ty_@3, ec), ed), ee)) → new_esEs5(zzz4000, zzz3000, ec, ed, ee)
new_esEs11(zzz4000, zzz3000, ty_Float) → new_esEs15(zzz4000, zzz3000)
new_primEqInt(Neg(Zero), Neg(Succ(zzz30000))) → False
new_primEqInt(Neg(Succ(zzz40000)), Neg(Zero)) → False
new_primCompAux0(zzz220, GT) → GT
new_ltEs17(zzz40000, zzz330000) → new_fsEs(new_compare19(zzz40000, zzz330000))
new_esEs8(EQ, EQ) → True
new_compare26(zzz400000, zzz3300000, True, hh, baa) → EQ
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Bool, cdh) → new_ltEs14(zzz400000, zzz3300000)
new_ltEs6(GT, GT) → True
new_esEs24(zzz4000, zzz3000, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_compare24(zzz400000, zzz3300000, True, bd, be) → EQ
new_ltEs13(@3(zzz400000, zzz400001, zzz400002), @3(zzz3300000, zzz3300001, zzz3300002), bec, bed, bee) → new_pePe(new_lt14(zzz400000, zzz3300000, bec), new_asAs(new_esEs22(zzz400000, zzz3300000, bec), new_pePe(new_lt13(zzz400001, zzz3300001, bed), new_asAs(new_esEs23(zzz400001, zzz3300001, bed), new_ltEs18(zzz400002, zzz3300002, bee)))))
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(ty_Maybe, cgh), cdh) → new_ltEs8(zzz400000, zzz3300000, cgh)
new_ltEs19(zzz40000, zzz330000, ty_Char) → new_ltEs17(zzz40000, zzz330000)
new_esEs22(zzz400000, zzz3300000, app(app(app(ty_@3, db), dc), dd)) → new_esEs5(zzz400000, zzz3300000, db, dc, dd)
new_compare([], [], bf) → EQ
new_compare11(zzz400000, zzz3300000, app(app(ty_@2, ce), cf)) → new_compare16(zzz400000, zzz3300000, ce, cf)
new_esEs26(zzz400000, zzz3300000, app(app(ty_Either, cfa), cfb)) → new_esEs7(zzz400000, zzz3300000, cfa, cfb)
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_esEs10([], :(zzz3000, zzz3001), df) → False
new_esEs10(:(zzz4000, zzz4001), [], df) → False
new_ltEs19(zzz40000, zzz330000, ty_Double) → new_ltEs7(zzz40000, zzz330000)
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_esEs4(Just(zzz4000), Just(zzz3000), app(app(ty_Either, dbc), dbd)) → new_esEs7(zzz4000, zzz3000, dbc, dbd)
new_esEs9(Integer(zzz4000), Integer(zzz3000)) → new_primEqInt(zzz4000, zzz3000)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, app(app(ty_@2, hf), hg)) → new_esEs6(zzz4000, zzz3000, hf, hg)
new_esEs22(zzz400000, zzz3300000, app(ty_Maybe, bef)) → new_esEs4(zzz400000, zzz3300000, bef)
new_esEs25(zzz4001, zzz3001, app(ty_Maybe, cce)) → new_esEs4(zzz4001, zzz3001, cce)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Int) → new_esEs18(zzz4000, zzz3000)
new_primEqInt(Pos(Succ(zzz40000)), Pos(Succ(zzz30000))) → new_primEqNat0(zzz40000, zzz30000)
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(ty_Ratio, bhe)) → new_ltEs11(zzz400000, zzz3300000, bhe)
new_compare10(zzz400000, zzz3300000, False, bd, be) → GT
new_esEs6(@2(zzz4000, zzz4001), @2(zzz3000, zzz3001), caf, cag) → new_asAs(new_esEs24(zzz4000, zzz3000, caf), new_esEs25(zzz4001, zzz3001, cag))
new_compare11(zzz400000, zzz3300000, app(ty_Ratio, bh)) → new_compare5(zzz400000, zzz3300000, bh)
new_ltEs19(zzz40000, zzz330000, ty_Bool) → new_ltEs14(zzz40000, zzz330000)
new_ltEs18(zzz400002, zzz3300002, app(app(ty_Either, bha), bhb)) → new_ltEs15(zzz400002, zzz3300002, bha, bhb)
new_esEs23(zzz400001, zzz3300001, ty_Char) → new_esEs17(zzz400001, zzz3300001)
new_esEs10([], [], df) → True
new_esEs24(zzz4000, zzz3000, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_lt14(zzz400000, zzz3300000, ty_Double) → new_lt19(zzz400000, zzz3300000)
new_primEqNat0(Succ(zzz40000), Succ(zzz30000)) → new_primEqNat0(zzz40000, zzz30000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Int, cdh) → new_ltEs12(zzz400000, zzz3300000)
new_ltEs14(False, False) → True
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Integer, fa) → new_esEs9(zzz4000, zzz3000)
new_esEs19(zzz4000, zzz3000, app(app(ty_@2, bbe), bbf)) → new_esEs6(zzz4000, zzz3000, bbe, bbf)
new_esEs4(Just(zzz4000), Just(zzz3000), app(app(app(ty_@3, dbg), dbh), dca)) → new_esEs5(zzz4000, zzz3000, dbg, dbh, dca)
new_esEs22(zzz400000, zzz3300000, ty_Bool) → new_esEs12(zzz400000, zzz3300000)
new_compare6(Double(zzz400000, zzz400001), Double(zzz3300000, zzz3300001)) → new_compare7(new_sr(zzz400000, zzz3300000), new_sr(zzz400001, zzz3300001))
new_lt11(zzz400000, zzz3300000) → new_esEs8(new_compare15(zzz400000, zzz3300000), LT)
new_compare114(zzz400000, zzz3300000, True, hh, baa) → LT
new_esEs24(zzz4000, zzz3000, ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_ltEs8(Just(zzz400000), Nothing, bhc) → False
new_esEs20(zzz4001, zzz3001, ty_Float) → new_esEs15(zzz4001, zzz3001)
new_compare31(zzz330, h) → new_compare27(Nothing, zzz330, new_esEs30(zzz330, h), h)
new_compare5(:%(zzz400000, zzz400001), :%(zzz3300000, zzz3300001), ty_Integer) → new_compare18(new_sr0(zzz400000, zzz3300001), new_sr0(zzz3300000, zzz400001))
new_esEs11(zzz4000, zzz3000, app(ty_Maybe, eb)) → new_esEs4(zzz4000, zzz3000, eb)
new_compare24(zzz400000, zzz3300000, False, bd, be) → new_compare10(zzz400000, zzz3300000, new_ltEs4(zzz400000, zzz3300000, bd, be), bd, be)
new_compare19(Char(zzz400000), Char(zzz3300000)) → new_primCmpNat0(zzz400000, zzz3300000)
new_esEs8(EQ, LT) → False
new_esEs8(LT, EQ) → False
new_lt20(zzz400000, zzz3300000, app(ty_Ratio, ceb)) → new_lt5(zzz400000, zzz3300000, ceb)
new_primEqInt(Pos(Zero), Pos(Succ(zzz30000))) → False
new_primEqInt(Pos(Succ(zzz40000)), Pos(Zero)) → False
new_esEs24(zzz4000, zzz3000, ty_Float) → new_esEs15(zzz4000, zzz3000)
new_primCmpNat0(Zero, Zero) → EQ
new_lt14(zzz400000, zzz3300000, app(app(app(ty_@3, db), dc), dd)) → new_lt8(zzz400000, zzz3300000, db, dc, dd)
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_esEs19(zzz4000, zzz3000, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_compare11(zzz400000, zzz3300000, ty_Char) → new_compare19(zzz400000, zzz3300000)
new_lt12(zzz400000, zzz3300000) → new_esEs8(new_compare19(zzz400000, zzz3300000), LT)
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_compare9(@0, @0) → EQ
new_esEs21(zzz4002, zzz3002, ty_Float) → new_esEs15(zzz4002, zzz3002)
new_esEs22(zzz400000, zzz3300000, app(ty_Ratio, bc)) → new_esEs13(zzz400000, zzz3300000, bc)
new_esEs27(zzz4000, zzz3000, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_sr0(Integer(zzz33000000), Integer(zzz4000010)) → Integer(new_primMulInt(zzz33000000, zzz4000010))
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primEqInt(Neg(Succ(zzz40000)), Pos(zzz3000)) → False
new_primEqInt(Pos(Succ(zzz40000)), Neg(zzz3000)) → False
new_esEs24(zzz4000, zzz3000, app(ty_Ratio, cbb)) → new_esEs13(zzz4000, zzz3000, cbb)
new_esEs4(Just(zzz4000), Just(zzz3000), app(app(ty_@2, dcc), dcd)) → new_esEs6(zzz4000, zzz3000, dcc, dcd)
new_gt1(zzz330, h) → new_esEs8(new_compare31(zzz330, h), GT)
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Float, fa) → new_esEs15(zzz4000, zzz3000)
new_compare18(Integer(zzz400000), Integer(zzz3300000)) → new_primCmpInt(zzz400000, zzz3300000)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Ordering) → new_ltEs6(zzz400000, zzz3300000)
new_esEs22(zzz400000, zzz3300000, app(app(ty_@2, bd), be)) → new_esEs6(zzz400000, zzz3300000, bd, be)
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primEqInt(Neg(Zero), Pos(Succ(zzz30000))) → False
new_primEqInt(Pos(Zero), Neg(Succ(zzz30000))) → False
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Float) → new_ltEs9(zzz400000, zzz3300000)
new_lt8(zzz400000, zzz3300000, db, dc, dd) → new_esEs8(new_compare14(zzz400000, zzz3300000, db, dc, dd), LT)
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_ltEs18(zzz400002, zzz3300002, app(ty_Ratio, bgb)) → new_ltEs11(zzz400002, zzz3300002, bgb)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, app(ty_Maybe, ha)) → new_esEs4(zzz4000, zzz3000, ha)
new_esEs25(zzz4001, zzz3001, ty_@0) → new_esEs14(zzz4001, zzz3001)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, ty_Char) → new_ltEs17(zzz400000, zzz3300000)
new_compare11(zzz400000, zzz3300000, app(app(app(ty_@3, cb), cc), cd)) → new_compare14(zzz400000, zzz3300000, cb, cc, cd)
new_esEs23(zzz400001, zzz3300001, ty_Int) → new_esEs18(zzz400001, zzz3300001)
new_ltEs5(zzz40000, zzz330000) → new_fsEs(new_compare9(zzz40000, zzz330000))
new_esEs25(zzz4001, zzz3001, ty_Float) → new_esEs15(zzz4001, zzz3001)
new_esEs8(GT, EQ) → False
new_esEs8(EQ, GT) → False
new_compare13(zzz4000, zzz33000, bah) → new_compare27(zzz4000, zzz33000, new_esEs4(zzz4000, zzz33000, bah), bah)
new_esEs16(Double(zzz4000, zzz4001), Double(zzz3000, zzz3001)) → new_esEs18(new_sr(zzz4000, zzz3000), new_sr(zzz4001, zzz3001))
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Float) → new_esEs15(zzz4000, zzz3000)
new_ltEs19(zzz40000, zzz330000, app(app(app(ty_@3, bec), bed), bee)) → new_ltEs13(zzz40000, zzz330000, bec, bed, bee)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_lt20(zzz400000, zzz3300000, ty_@0) → new_lt16(zzz400000, zzz3300000)
new_esEs10(:(zzz4000, zzz4001), :(zzz3000, zzz3001), df) → new_asAs(new_esEs11(zzz4000, zzz3000, df), new_esEs10(zzz4001, zzz3001, df))
new_primCompAux0(zzz220, LT) → LT
new_esEs7(Right(zzz4000), Right(zzz3000), ge, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_@0) → new_ltEs5(zzz400000, zzz3300000)
new_lt13(zzz400001, zzz3300001, ty_Bool) → new_lt11(zzz400001, zzz3300001)
new_compare16(zzz400000, zzz3300000, bd, be) → new_compare24(zzz400000, zzz3300000, new_esEs6(zzz400000, zzz3300000, bd, be), bd, be)
new_compare11(zzz400000, zzz3300000, ty_Double) → new_compare6(zzz400000, zzz3300000)
new_compare113(zzz400000, zzz3300000, True) → LT
new_compare114(zzz400000, zzz3300000, False, hh, baa) → GT
new_not(False) → True
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Int, fa) → new_esEs18(zzz4000, zzz3000)
new_compare110(zzz195, zzz196, True, de) → LT
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Double, fa) → new_esEs16(zzz4000, zzz3000)
new_lt16(zzz400000, zzz3300000) → new_esEs8(new_compare9(zzz400000, zzz3300000), LT)
new_ltEs19(zzz40000, zzz330000, app(ty_[], bf)) → new_ltEs10(zzz40000, zzz330000, bf)
new_lt13(zzz400001, zzz3300001, ty_Integer) → new_lt7(zzz400001, zzz3300001)
new_esEs23(zzz400001, zzz3300001, app(app(ty_@2, bfe), bff)) → new_esEs6(zzz400001, zzz3300001, bfe, bff)
new_esEs19(zzz4000, zzz3000, ty_Char) → new_esEs17(zzz4000, zzz3000)
new_compare113(zzz400000, zzz3300000, False) → GT
new_esEs7(Right(zzz4000), Right(zzz3000), ge, ty_@0) → new_esEs14(zzz4000, zzz3000)
new_esEs26(zzz400000, zzz3300000, ty_Int) → new_esEs18(zzz400000, zzz3300000)
new_esEs11(zzz4000, zzz3000, ty_Double) → new_esEs16(zzz4000, zzz3000)
new_esEs11(zzz4000, zzz3000, ty_@0) → new_esEs14(zzz4000, zzz3000)
new_lt13(zzz400001, zzz3300001, app(ty_Ratio, beh)) → new_lt5(zzz400001, zzz3300001, beh)
new_esEs23(zzz400001, zzz3300001, app(ty_[], beg)) → new_esEs10(zzz400001, zzz3300001, beg)
new_ltEs19(zzz40000, zzz330000, app(app(ty_Either, cdg), cdh)) → new_ltEs15(zzz40000, zzz330000, cdg, cdh)
new_esEs19(zzz4000, zzz3000, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_compare28(zzz400000, zzz3300000, True) → EQ
new_lt13(zzz400001, zzz3300001, app(app(ty_@2, bfe), bff)) → new_lt17(zzz400001, zzz3300001, bfe, bff)
new_esEs20(zzz4001, zzz3001, ty_Int) → new_esEs18(zzz4001, zzz3001)
new_esEs20(zzz4001, zzz3001, app(app(app(ty_@3, bcc), bcd), bce)) → new_esEs5(zzz4001, zzz3001, bcc, bcd, bce)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_esEs21(zzz4002, zzz3002, app(app(app(ty_@3, bde), bdf), bdg)) → new_esEs5(zzz4002, zzz3002, bde, bdf, bdg)
new_lt14(zzz400000, zzz3300000, ty_Int) → new_lt9(zzz400000, zzz3300000)
new_esEs7(Right(zzz4000), Right(zzz3000), ge, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_ltEs18(zzz400002, zzz3300002, ty_Float) → new_ltEs9(zzz400002, zzz3300002)
new_esEs5(@3(zzz4000, zzz4001, zzz4002), @3(zzz3000, zzz3001, zzz3002), bab, bac, bad) → new_asAs(new_esEs19(zzz4000, zzz3000, bab), new_asAs(new_esEs20(zzz4001, zzz3001, bac), new_esEs21(zzz4002, zzz3002, bad)))
new_esEs7(Left(zzz4000), Left(zzz3000), ty_@0, fa) → new_esEs14(zzz4000, zzz3000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(app(app(ty_@3, cha), chb), chc), cdh) → new_ltEs13(zzz400000, zzz3300000, cha, chb, chc)
new_ltEs19(zzz40000, zzz330000, app(ty_Maybe, bhc)) → new_ltEs8(zzz40000, zzz330000, bhc)
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_primEqNat0(Succ(zzz40000), Zero) → False
new_primEqNat0(Zero, Succ(zzz30000)) → False
new_ltEs19(zzz40000, zzz330000, ty_Int) → new_ltEs12(zzz40000, zzz330000)
new_ltEs6(LT, LT) → True
new_lt20(zzz400000, zzz3300000, app(app(ty_Either, cfa), cfb)) → new_lt18(zzz400000, zzz3300000, cfa, cfb)
new_ltEs6(EQ, LT) → False
new_esEs20(zzz4001, zzz3001, app(ty_[], bcf)) → new_esEs10(zzz4001, zzz3001, bcf)
new_ltEs14(True, True) → True
new_primEqInt(Pos(Zero), Pos(Zero)) → True
new_ltEs12(zzz40000, zzz330000) → new_fsEs(new_compare7(zzz40000, zzz330000))
new_esEs4(Nothing, Nothing, dbb) → True
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Char, fa) → new_esEs17(zzz4000, zzz3000)
new_esEs4(Just(zzz4000), Just(zzz3000), app(ty_Ratio, dbe)) → new_esEs13(zzz4000, zzz3000, dbe)
new_esEs11(zzz4000, zzz3000, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_lt14(zzz400000, zzz3300000, ty_Bool) → new_lt11(zzz400000, zzz3300000)
new_lt18(zzz400000, zzz3300000, hh, baa) → new_esEs8(new_compare17(zzz400000, zzz3300000, hh, baa), LT)
new_esEs21(zzz4002, zzz3002, app(app(ty_Either, bda), bdb)) → new_esEs7(zzz4002, zzz3002, bda, bdb)
new_ltEs18(zzz400002, zzz3300002, app(app(app(ty_@3, bgd), bge), bgf)) → new_ltEs13(zzz400002, zzz3300002, bgd, bge, bgf)
new_lt13(zzz400001, zzz3300001, app(ty_Maybe, bfa)) → new_lt15(zzz400001, zzz3300001, bfa)
new_lt13(zzz400001, zzz3300001, ty_Double) → new_lt19(zzz400001, zzz3300001)
new_ltEs20(zzz400001, zzz3300001, ty_@0) → new_ltEs5(zzz400001, zzz3300001)
new_compare112(zzz400000, zzz3300000, True, db, dc, dd) → LT
new_esEs21(zzz4002, zzz3002, ty_Char) → new_esEs17(zzz4002, zzz3002)
new_lt10(zzz400000, zzz3300000) → new_esEs8(new_compare12(zzz400000, zzz3300000), LT)
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_compare110(zzz195, zzz196, False, de) → GT
new_ltEs20(zzz400001, zzz3300001, ty_Int) → new_ltEs12(zzz400001, zzz3300001)
new_lt14(zzz400000, zzz3300000, app(app(ty_@2, bd), be)) → new_lt17(zzz400000, zzz3300000, bd, be)
new_ltEs20(zzz400001, zzz3300001, app(app(app(ty_@3, cff), cfg), cfh)) → new_ltEs13(zzz400001, zzz3300001, cff, cfg, cfh)
new_esEs26(zzz400000, zzz3300000, ty_@0) → new_esEs14(zzz400000, zzz3300000)
new_esEs11(zzz4000, zzz3000, app(app(ty_Either, dg), dh)) → new_esEs7(zzz4000, zzz3000, dg, dh)
new_lt14(zzz400000, zzz3300000, app(ty_Maybe, bef)) → new_lt15(zzz400000, zzz3300000, bef)
new_ltEs18(zzz400002, zzz3300002, app(ty_[], bga)) → new_ltEs10(zzz400002, zzz3300002, bga)
new_esEs24(zzz4000, zzz3000, app(ty_[], cbg)) → new_esEs10(zzz4000, zzz3000, cbg)
new_esEs21(zzz4002, zzz3002, app(ty_Maybe, bdd)) → new_esEs4(zzz4002, zzz3002, bdd)
new_compare11(zzz400000, zzz3300000, ty_@0) → new_compare9(zzz400000, zzz3300000)
new_esEs20(zzz4001, zzz3001, app(app(ty_Either, bbg), bbh)) → new_esEs7(zzz4001, zzz3001, bbg, bbh)
new_ltEs20(zzz400001, zzz3300001, app(app(ty_Either, cgc), cgd)) → new_ltEs15(zzz400001, zzz3300001, cgc, cgd)
new_esEs23(zzz400001, zzz3300001, ty_@0) → new_esEs14(zzz400001, zzz3300001)
new_esEs11(zzz4000, zzz3000, app(app(ty_@2, eg), eh)) → new_esEs6(zzz4000, zzz3000, eg, eh)
new_esEs28(zzz4001, zzz3001, ty_Integer) → new_esEs9(zzz4001, zzz3001)
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs25(zzz4001, zzz3001, ty_Bool) → new_esEs12(zzz4001, zzz3001)
new_esEs21(zzz4002, zzz3002, ty_@0) → new_esEs14(zzz4002, zzz3002)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, app(ty_[], chh)) → new_ltEs10(zzz400000, zzz3300000, chh)
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(ty_Maybe, bhf)) → new_ltEs8(zzz400000, zzz3300000, bhf)
new_esEs19(zzz4000, zzz3000, ty_Double) → new_esEs16(zzz4000, zzz3000)
new_esEs13(:%(zzz4000, zzz4001), :%(zzz3000, zzz3001), cge) → new_asAs(new_esEs27(zzz4000, zzz3000, cge), new_esEs28(zzz4001, zzz3001, cge))
new_lt14(zzz400000, zzz3300000, ty_Float) → new_lt10(zzz400000, zzz3300000)
new_asAs(False, zzz202) → False
new_lt20(zzz400000, zzz3300000, ty_Double) → new_lt19(zzz400000, zzz3300000)
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, ty_Ordering) → new_ltEs6(zzz400000, zzz3300000)
new_compare14(zzz400000, zzz3300000, db, dc, dd) → new_compare25(zzz400000, zzz3300000, new_esEs5(zzz400000, zzz3300000, db, dc, dd), db, dc, dd)
new_esEs21(zzz4002, zzz3002, ty_Ordering) → new_esEs8(zzz4002, zzz3002)
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(app(ty_@2, cab), cac)) → new_ltEs4(zzz400000, zzz3300000, cab, cac)
new_compare11(zzz400000, zzz3300000, ty_Bool) → new_compare15(zzz400000, zzz3300000)
new_esEs22(zzz400000, zzz3300000, app(ty_[], bb)) → new_esEs10(zzz400000, zzz3300000, bb)
new_ltEs16(zzz40000, zzz330000) → new_fsEs(new_compare18(zzz40000, zzz330000))
new_lt20(zzz400000, zzz3300000, app(ty_[], cea)) → new_lt4(zzz400000, zzz3300000, cea)
new_lt19(zzz400000, zzz3300000) → new_esEs8(new_compare6(zzz400000, zzz3300000), LT)
new_esEs23(zzz400001, zzz3300001, ty_Float) → new_esEs15(zzz400001, zzz3300001)
new_ltEs18(zzz400002, zzz3300002, ty_Bool) → new_ltEs14(zzz400002, zzz3300002)
new_esEs21(zzz4002, zzz3002, ty_Integer) → new_esEs9(zzz4002, zzz3002)
new_compare11(zzz400000, zzz3300000, app(app(ty_Either, cg), da)) → new_compare17(zzz400000, zzz3300000, cg, da)
new_compare25(zzz400000, zzz3300000, False, db, dc, dd) → new_compare112(zzz400000, zzz3300000, new_ltEs13(zzz400000, zzz3300000, db, dc, dd), db, dc, dd)
new_esEs26(zzz400000, zzz3300000, ty_Integer) → new_esEs9(zzz400000, zzz3300000)
new_esEs24(zzz4000, zzz3000, ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_esEs23(zzz400001, zzz3300001, ty_Double) → new_esEs16(zzz400001, zzz3300001)
new_ltEs6(LT, GT) → True
new_compare11(zzz400000, zzz3300000, ty_Ordering) → new_compare8(zzz400000, zzz3300000)
new_lt13(zzz400001, zzz3300001, ty_Ordering) → new_lt6(zzz400001, zzz3300001)
new_compare112(zzz400000, zzz3300000, False, db, dc, dd) → GT
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Double) → new_esEs16(zzz4000, zzz3000)
new_esEs12(True, False) → False
new_esEs12(False, True) → False
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, ty_Int) → new_ltEs12(zzz400000, zzz3300000)
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Bool, fa) → new_esEs12(zzz4000, zzz3000)
new_esEs11(zzz4000, zzz3000, app(ty_Ratio, ea)) → new_esEs13(zzz4000, zzz3000, ea)
new_esEs30(Just(zzz3300), h) → False
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(ty_Ratio, cgg), cdh) → new_ltEs11(zzz400000, zzz3300000, cgg)
new_compare11(zzz400000, zzz3300000, ty_Float) → new_compare12(zzz400000, zzz3300000)
new_esEs11(zzz4000, zzz3000, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_ltEs18(zzz400002, zzz3300002, app(ty_Maybe, bgc)) → new_ltEs8(zzz400002, zzz3300002, bgc)
new_ltEs14(True, False) → False
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_ltEs8(Nothing, Nothing, bhc) → True
new_esEs22(zzz400000, zzz3300000, ty_@0) → new_esEs14(zzz400000, zzz3300000)
new_esEs25(zzz4001, zzz3001, app(app(app(ty_@3, ccf), ccg), cch)) → new_esEs5(zzz4001, zzz3001, ccf, ccg, cch)
new_esEs15(Float(zzz4000, zzz4001), Float(zzz3000, zzz3001)) → new_esEs18(new_sr(zzz4000, zzz3000), new_sr(zzz4001, zzz3001))
new_lt20(zzz400000, zzz3300000, ty_Char) → new_lt12(zzz400000, zzz3300000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Integer, cdh) → new_ltEs16(zzz400000, zzz3300000)
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, app(app(ty_Either, dah), dba)) → new_ltEs15(zzz400000, zzz3300000, dah, dba)
new_compare27(zzz4000, zzz33000, True, bah) → EQ
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, ty_Bool) → new_ltEs14(zzz400000, zzz3300000)
new_compare28(zzz400000, zzz3300000, False) → new_compare113(zzz400000, zzz3300000, new_ltEs6(zzz400000, zzz3300000))
new_esEs22(zzz400000, zzz3300000, ty_Double) → new_esEs16(zzz400000, zzz3300000)
new_esEs20(zzz4001, zzz3001, ty_Char) → new_esEs17(zzz4001, zzz3001)
new_ltEs7(zzz40000, zzz330000) → new_fsEs(new_compare6(zzz40000, zzz330000))
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, app(ty_Ratio, daa)) → new_ltEs11(zzz400000, zzz3300000, daa)
new_primPlusNat1(Zero, Zero) → Zero
new_ltEs6(LT, EQ) → True
new_ltEs6(GT, LT) → False
new_asAs(True, zzz202) → zzz202
new_esEs26(zzz400000, zzz3300000, app(app(app(ty_@3, ced), cee), cef)) → new_esEs5(zzz400000, zzz3300000, ced, cee, cef)
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_esEs11(zzz4000, zzz3000, ty_Char) → new_esEs17(zzz4000, zzz3000)
new_esEs11(zzz4000, zzz3000, app(ty_[], ef)) → new_esEs10(zzz4000, zzz3000, ef)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Integer) → new_ltEs16(zzz400000, zzz3300000)
new_compare8(zzz400000, zzz3300000) → new_compare28(zzz400000, zzz3300000, new_esEs8(zzz400000, zzz3300000))
new_ltEs15(Right(zzz400000), Right(zzz3300000), cdg, ty_Integer) → new_ltEs16(zzz400000, zzz3300000)
new_lt13(zzz400001, zzz3300001, ty_@0) → new_lt16(zzz400001, zzz3300001)
new_fsEs(zzz205) → new_not(new_esEs8(zzz205, GT))
new_ltEs20(zzz400001, zzz3300001, ty_Float) → new_ltEs9(zzz400001, zzz3300001)
new_esEs26(zzz400000, zzz3300000, app(app(ty_@2, ceg), ceh)) → new_esEs6(zzz400000, zzz3300000, ceg, ceh)
new_esEs23(zzz400001, zzz3300001, app(app(app(ty_@3, bfb), bfc), bfd)) → new_esEs5(zzz400001, zzz3300001, bfb, bfc, bfd)
new_esEs19(zzz4000, zzz3000, ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_lt20(zzz400000, zzz3300000, ty_Int) → new_lt9(zzz400000, zzz3300000)
new_esEs26(zzz400000, zzz3300000, ty_Double) → new_esEs16(zzz400000, zzz3300000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(app(ty_Either, chf), chg), cdh) → new_ltEs15(zzz400000, zzz3300000, chf, chg)
new_ltEs15(Left(zzz400000), Right(zzz3300000), cdg, cdh) → True
new_esEs30(Nothing, h) → True
new_ltEs18(zzz400002, zzz3300002, app(app(ty_@2, bgg), bgh)) → new_ltEs4(zzz400002, zzz3300002, bgg, bgh)
new_ltEs20(zzz400001, zzz3300001, ty_Ordering) → new_ltEs6(zzz400001, zzz3300001)
new_lt17(zzz400000, zzz3300000, bd, be) → new_esEs8(new_compare16(zzz400000, zzz3300000, bd, be), LT)
new_compare5(:%(zzz400000, zzz400001), :%(zzz3300000, zzz3300001), ty_Int) → new_compare7(new_sr(zzz400000, zzz3300001), new_sr(zzz3300000, zzz400001))
new_esEs21(zzz4002, zzz3002, ty_Bool) → new_esEs12(zzz4002, zzz3002)
new_lt5(zzz400000, zzz3300000, bc) → new_esEs8(new_compare5(zzz400000, zzz3300000, bc), LT)
new_esEs25(zzz4001, zzz3001, app(app(ty_Either, ccb), ccc)) → new_esEs7(zzz4001, zzz3001, ccb, ccc)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCompAux0(zzz220, EQ) → zzz220
new_ltEs15(Right(zzz400000), Left(zzz3300000), cdg, cdh) → False
new_compare29(zzz400000, zzz3300000, False) → new_compare111(zzz400000, zzz3300000, new_ltEs14(zzz400000, zzz3300000))
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(app(ty_@2, chd), che), cdh) → new_ltEs4(zzz400000, zzz3300000, chd, che)
new_ltEs20(zzz400001, zzz3300001, ty_Char) → new_ltEs17(zzz400001, zzz3300001)
new_primEqInt(Neg(Zero), Pos(Zero)) → True
new_primEqInt(Pos(Zero), Neg(Zero)) → True
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Float, cdh) → new_ltEs9(zzz400000, zzz3300000)
new_not(True) → False
new_esEs25(zzz4001, zzz3001, ty_Integer) → new_esEs9(zzz4001, zzz3001)

The set Q consists of the following terms:

new_esEs19(x0, x1, ty_Integer)
new_esEs24(x0, x1, ty_Ordering)
new_ltEs20(x0, x1, app(ty_Maybe, x2))
new_lt13(x0, x1, app(ty_Ratio, x2))
new_lt14(x0, x1, ty_Double)
new_ltEs8(Just(x0), Just(x1), ty_Int)
new_esEs7(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_esEs22(x0, x1, app(app(ty_Either, x2), x3))
new_esEs4(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_ltEs13(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_ltEs15(Left(x0), Left(x1), ty_@0, x2)
new_esEs7(Left(x0), Left(x1), ty_Char, x2)
new_primPlusNat0(Succ(x0), x1)
new_esEs11(x0, x1, ty_@0)
new_primPlusNat0(Zero, x0)
new_pePe(True, x0)
new_ltEs19(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs19(x0, x1, ty_Int)
new_asAs(True, x0)
new_compare26(x0, x1, False, x2, x3)
new_lt13(x0, x1, ty_Ordering)
new_esEs7(Right(x0), Right(x1), x2, app(ty_[], x3))
new_esEs12(False, False)
new_esEs20(x0, x1, app(ty_[], x2))
new_ltEs8(Just(x0), Just(x1), ty_Integer)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_esEs24(x0, x1, app(app(ty_Either, x2), x3))
new_lt11(x0, x1)
new_ltEs19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare111(x0, x1, False)
new_esEs20(x0, x1, ty_Bool)
new_esEs26(x0, x1, ty_Int)
new_ltEs20(x0, x1, app(app(ty_@2, x2), x3))
new_compare15(x0, x1)
new_lt14(x0, x1, ty_Ordering)
new_esEs26(x0, x1, ty_Double)
new_esEs24(x0, x1, ty_@0)
new_primEqInt(Neg(Succ(x0)), Neg(Zero))
new_compare19(Char(x0), Char(x1))
new_primPlusNat1(Succ(x0), Zero)
new_compare28(x0, x1, False)
new_esEs26(x0, x1, app(ty_[], x2))
new_esEs22(x0, x1, ty_Integer)
new_esEs19(x0, x1, app(app(ty_@2, x2), x3))
new_compare6(Double(x0, x1), Double(x2, x3))
new_esEs4(Just(x0), Just(x1), ty_Bool)
new_compare27(Nothing, Nothing, False, x0)
new_esEs11(x0, x1, ty_Float)
new_primCompAux0(x0, LT)
new_esEs7(Left(x0), Left(x1), app(ty_[], x2), x3)
new_ltEs14(True, False)
new_ltEs14(False, True)
new_esEs22(x0, x1, app(ty_[], x2))
new_esEs25(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare25(x0, x1, False, x2, x3, x4)
new_esEs8(GT, GT)
new_primMulInt(Pos(x0), Pos(x1))
new_compare(:(x0, x1), [], x2)
new_ltEs18(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt10(x0, x1)
new_primEqInt(Pos(Succ(x0)), Neg(x1))
new_primEqInt(Neg(Succ(x0)), Pos(x1))
new_esEs7(Left(x0), Left(x1), ty_Double, x2)
new_esEs8(LT, LT)
new_lt20(x0, x1, ty_Double)
new_esEs19(x0, x1, ty_Int)
new_ltEs7(x0, x1)
new_esEs21(x0, x1, app(app(ty_@2, x2), x3))
new_esEs4(Just(x0), Just(x1), app(ty_Ratio, x2))
new_ltEs15(Right(x0), Right(x1), x2, ty_Int)
new_compare11(x0, x1, ty_@0)
new_primEqInt(Pos(Succ(x0)), Pos(Zero))
new_lt13(x0, x1, ty_Double)
new_esEs7(Right(x0), Left(x1), x2, x3)
new_esEs7(Left(x0), Right(x1), x2, x3)
new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_lt13(x0, x1, ty_@0)
new_ltEs6(EQ, EQ)
new_lt20(x0, x1, ty_Integer)
new_esEs22(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs10([], :(x0, x1), x2)
new_esEs7(Left(x0), Left(x1), ty_Ordering, x2)
new_ltEs18(x0, x1, ty_Int)
new_compare11(x0, x1, app(ty_Ratio, x2))
new_esEs8(GT, LT)
new_esEs8(LT, GT)
new_lt14(x0, x1, ty_Int)
new_esEs23(x0, x1, app(ty_Maybe, x2))
new_compare11(x0, x1, app(ty_[], x2))
new_gt1(x0, x1)
new_ltEs15(Left(x0), Left(x1), ty_Bool, x2)
new_esEs7(Left(x0), Left(x1), ty_@0, x2)
new_esEs10(:(x0, x1), [], x2)
new_esEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs11(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs6(LT, EQ)
new_esEs7(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_ltEs6(EQ, LT)
new_lt7(x0, x1)
new_esEs24(x0, x1, app(ty_Maybe, x2))
new_esEs11(x0, x1, ty_Integer)
new_esEs20(x0, x1, ty_Float)
new_lt9(x0, x1)
new_primCmpNat0(Succ(x0), Zero)
new_primEqNat0(Zero, Zero)
new_esEs19(x0, x1, app(ty_Maybe, x2))
new_esEs18(x0, x1)
new_ltEs10(x0, x1, x2)
new_lt14(x0, x1, app(app(ty_@2, x2), x3))
new_esEs19(x0, x1, ty_Ordering)
new_esEs21(x0, x1, app(ty_Ratio, x2))
new_lt20(x0, x1, ty_Ordering)
new_esEs19(x0, x1, ty_Char)
new_esEs7(Right(x0), Right(x1), x2, ty_Char)
new_compare114(x0, x1, False, x2, x3)
new_esEs22(x0, x1, ty_Char)
new_ltEs15(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_compare114(x0, x1, True, x2, x3)
new_lt20(x0, x1, ty_@0)
new_esEs23(x0, x1, ty_Char)
new_lt14(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs8(Nothing, Nothing, x0)
new_primMulNat0(Zero, Zero)
new_compare([], :(x0, x1), x2)
new_lt19(x0, x1)
new_lt13(x0, x1, app(app(ty_Either, x2), x3))
new_esEs23(x0, x1, app(app(ty_@2, x2), x3))
new_compare27(Just(x0), Just(x1), False, x2)
new_esEs19(x0, x1, app(app(ty_Either, x2), x3))
new_compare11(x0, x1, ty_Int)
new_esEs4(Just(x0), Just(x1), ty_Int)
new_ltEs18(x0, x1, ty_Bool)
new_primMulNat0(Zero, Succ(x0))
new_compare31(x0, x1)
new_compare11(x0, x1, ty_Double)
new_ltEs8(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_ltEs15(Right(x0), Right(x1), x2, ty_Char)
new_ltEs20(x0, x1, ty_Char)
new_ltEs20(x0, x1, ty_Bool)
new_compare(:(x0, x1), :(x2, x3), x4)
new_primEqInt(Pos(Zero), Neg(Succ(x0)))
new_primEqInt(Neg(Zero), Pos(Succ(x0)))
new_ltEs8(Just(x0), Just(x1), ty_Double)
new_esEs4(Just(x0), Just(x1), ty_Integer)
new_primCmpNat0(Succ(x0), Succ(x1))
new_lt12(x0, x1)
new_lt14(x0, x1, ty_Char)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_ltEs15(Left(x0), Left(x1), ty_Char, x2)
new_compare8(x0, x1)
new_ltEs17(x0, x1)
new_esEs26(x0, x1, ty_Integer)
new_esEs23(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs7(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_esEs4(Just(x0), Just(x1), app(ty_[], x2))
new_lt20(x0, x1, app(ty_Ratio, x2))
new_esEs14(@0, @0)
new_ltEs8(Just(x0), Just(x1), app(ty_Ratio, x2))
new_compare12(Float(x0, x1), Float(x2, x3))
new_compare27(x0, x1, True, x2)
new_esEs19(x0, x1, ty_Double)
new_ltEs20(x0, x1, app(ty_[], x2))
new_ltEs15(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_lt8(x0, x1, x2, x3, x4)
new_esEs23(x0, x1, ty_@0)
new_esEs11(x0, x1, ty_Int)
new_primPlusNat1(Succ(x0), Succ(x1))
new_ltEs6(GT, LT)
new_ltEs6(LT, GT)
new_esEs23(x0, x1, ty_Ordering)
new_compare110(x0, x1, True, x2)
new_ltEs19(x0, x1, ty_Integer)
new_ltEs11(x0, x1, x2)
new_esEs4(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_compare13(x0, x1, x2)
new_esEs10(:(x0, x1), :(x2, x3), x4)
new_ltEs15(Right(x0), Left(x1), x2, x3)
new_ltEs15(Left(x0), Right(x1), x2, x3)
new_esEs23(x0, x1, app(app(ty_Either, x2), x3))
new_pePe(False, x0)
new_lt4(x0, x1, x2)
new_esEs26(x0, x1, ty_Char)
new_ltEs8(Just(x0), Just(x1), ty_@0)
new_esEs30(Nothing, x0)
new_esEs27(x0, x1, ty_Integer)
new_compare29(x0, x1, True)
new_ltEs18(x0, x1, app(app(ty_@2, x2), x3))
new_esEs11(x0, x1, ty_Double)
new_lt20(x0, x1, app(app(ty_@2, x2), x3))
new_compare11(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs18(x0, x1, ty_Char)
new_esEs19(x0, x1, app(ty_[], x2))
new_ltEs18(x0, x1, app(ty_Maybe, x2))
new_esEs7(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_esEs23(x0, x1, ty_Float)
new_esEs22(x0, x1, app(app(ty_@2, x2), x3))
new_esEs21(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs8(Just(x0), Just(x1), app(ty_[], x2))
new_primMulNat0(Succ(x0), Zero)
new_primEqInt(Neg(Zero), Neg(Succ(x0)))
new_esEs24(x0, x1, app(ty_Ratio, x2))
new_ltEs19(x0, x1, app(ty_Maybe, x2))
new_ltEs15(Right(x0), Right(x1), x2, ty_Bool)
new_primPlusNat1(Zero, Zero)
new_ltEs18(x0, x1, ty_Integer)
new_esEs26(x0, x1, ty_Bool)
new_esEs26(x0, x1, ty_Float)
new_esEs25(x0, x1, app(app(ty_@2, x2), x3))
new_esEs16(Double(x0, x1), Double(x2, x3))
new_esEs21(x0, x1, app(ty_[], x2))
new_esEs25(x0, x1, ty_Char)
new_ltEs19(x0, x1, ty_@0)
new_ltEs15(Left(x0), Left(x1), ty_Ordering, x2)
new_ltEs15(Left(x0), Left(x1), ty_Integer, x2)
new_esEs25(x0, x1, app(ty_Maybe, x2))
new_primCompAux1(x0, x1, x2, x3)
new_ltEs20(x0, x1, ty_Int)
new_esEs24(x0, x1, app(ty_[], x2))
new_esEs25(x0, x1, app(ty_[], x2))
new_lt14(x0, x1, app(ty_[], x2))
new_compare16(x0, x1, x2, x3)
new_esEs22(x0, x1, app(ty_Maybe, x2))
new_ltEs8(Just(x0), Nothing, x1)
new_ltEs18(x0, x1, ty_Float)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_esEs26(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs18(x0, x1, app(app(ty_Either, x2), x3))
new_compare5(:%(x0, x1), :%(x2, x3), ty_Integer)
new_esEs20(x0, x1, ty_Int)
new_ltEs15(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_ltEs8(Nothing, Just(x0), x1)
new_esEs4(Just(x0), Just(x1), ty_Ordering)
new_lt6(x0, x1)
new_esEs4(Nothing, Nothing, x0)
new_lt14(x0, x1, ty_Bool)
new_esEs21(x0, x1, ty_Char)
new_esEs21(x0, x1, ty_Double)
new_ltEs15(Left(x0), Left(x1), app(ty_[], x2), x3)
new_ltEs9(x0, x1)
new_esEs25(x0, x1, ty_Float)
new_compare11(x0, x1, ty_Integer)
new_compare27(Nothing, Just(x0), False, x1)
new_esEs21(x0, x1, ty_Bool)
new_primMulNat0(Succ(x0), Succ(x1))
new_esEs21(x0, x1, app(ty_Maybe, x2))
new_lt20(x0, x1, ty_Bool)
new_esEs26(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs20(x0, x1, app(app(ty_Either, x2), x3))
new_lt16(x0, x1)
new_compare17(x0, x1, x2, x3)
new_compare18(Integer(x0), Integer(x1))
new_esEs7(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_esEs7(Left(x0), Left(x1), ty_Float, x2)
new_compare11(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs12(True, True)
new_esEs24(x0, x1, ty_Integer)
new_esEs4(Just(x0), Just(x1), ty_Float)
new_esEs21(x0, x1, ty_Ordering)
new_esEs13(:%(x0, x1), :%(x2, x3), x4)
new_esEs24(x0, x1, ty_Double)
new_ltEs19(x0, x1, ty_Bool)
new_esEs7(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_esEs7(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_lt13(x0, x1, ty_Int)
new_lt5(x0, x1, x2)
new_lt13(x0, x1, app(ty_Maybe, x2))
new_compare112(x0, x1, False, x2, x3, x4)
new_esEs7(Left(x0), Left(x1), ty_Bool, x2)
new_esEs11(x0, x1, app(ty_Ratio, x2))
new_ltEs15(Right(x0), Right(x1), x2, ty_Double)
new_lt14(x0, x1, ty_Integer)
new_ltEs18(x0, x1, ty_@0)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_lt14(x0, x1, app(ty_Ratio, x2))
new_lt13(x0, x1, ty_Char)
new_primEqInt(Neg(Zero), Pos(Zero))
new_primEqInt(Pos(Zero), Neg(Zero))
new_primEqNat0(Succ(x0), Succ(x1))
new_compare14(x0, x1, x2, x3, x4)
new_esEs24(x0, x1, ty_Char)
new_ltEs15(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_esEs21(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs8(Just(x0), Just(x1), ty_Float)
new_esEs25(x0, x1, app(ty_Ratio, x2))
new_esEs26(x0, x1, ty_Ordering)
new_esEs26(x0, x1, app(ty_Maybe, x2))
new_esEs19(x0, x1, ty_Float)
new_esEs20(x0, x1, ty_@0)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_esEs8(EQ, EQ)
new_compare11(x0, x1, ty_Ordering)
new_lt20(x0, x1, ty_Float)
new_esEs24(x0, x1, ty_Int)
new_compare110(x0, x1, False, x2)
new_primEqInt(Neg(Zero), Neg(Zero))
new_asAs(False, x0)
new_ltEs15(Right(x0), Right(x1), x2, ty_Integer)
new_lt13(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs4(Just(x0), Just(x1), ty_Double)
new_lt15(x0, x1, x2)
new_esEs5(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_ltEs20(x0, x1, app(ty_Ratio, x2))
new_compare24(x0, x1, True, x2, x3)
new_compare113(x0, x1, True)
new_esEs4(Just(x0), Nothing, x1)
new_lt13(x0, x1, ty_Float)
new_esEs30(Just(x0), x1)
new_primCmpNat0(Zero, Succ(x0))
new_lt14(x0, x1, app(ty_Maybe, x2))
new_esEs26(x0, x1, app(app(ty_@2, x2), x3))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_ltEs19(x0, x1, app(ty_Ratio, x2))
new_esEs11(x0, x1, ty_Bool)
new_esEs22(x0, x1, ty_Double)
new_compare25(x0, x1, True, x2, x3, x4)
new_esEs25(x0, x1, ty_Bool)
new_esEs28(x0, x1, ty_Int)
new_ltEs15(Right(x0), Right(x1), x2, ty_Float)
new_esEs15(Float(x0, x1), Float(x2, x3))
new_primMulInt(Neg(x0), Neg(x1))
new_compare5(:%(x0, x1), :%(x2, x3), ty_Int)
new_esEs20(x0, x1, app(app(ty_@2, x2), x3))
new_esEs20(x0, x1, ty_Char)
new_ltEs19(x0, x1, ty_Char)
new_esEs7(Right(x0), Right(x1), x2, ty_Ordering)
new_esEs23(x0, x1, app(ty_Ratio, x2))
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_compare29(x0, x1, False)
new_esEs20(x0, x1, ty_Double)
new_ltEs6(GT, GT)
new_lt13(x0, x1, ty_Bool)
new_esEs23(x0, x1, ty_Integer)
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_compare27(Just(x0), Nothing, False, x1)
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_primEqInt(Pos(Zero), Pos(Succ(x0)))
new_primCmpNat0(Zero, Zero)
new_ltEs8(Just(x0), Just(x1), ty_Char)
new_esEs27(x0, x1, ty_Int)
new_ltEs6(LT, LT)
new_ltEs15(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_esEs22(x0, x1, ty_Bool)
new_primPlusNat1(Zero, Succ(x0))
new_ltEs18(x0, x1, ty_Double)
new_esEs22(x0, x1, ty_Int)
new_lt13(x0, x1, ty_Integer)
new_lt18(x0, x1, x2, x3)
new_esEs28(x0, x1, ty_Integer)
new_esEs17(Char(x0), Char(x1))
new_esEs11(x0, x1, app(ty_Maybe, x2))
new_lt20(x0, x1, ty_Char)
new_esEs20(x0, x1, app(ty_Maybe, x2))
new_esEs25(x0, x1, ty_Integer)
new_ltEs15(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_lt17(x0, x1, x2, x3)
new_esEs4(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_esEs22(x0, x1, app(ty_Ratio, x2))
new_esEs7(Right(x0), Right(x1), x2, ty_Integer)
new_ltEs15(Left(x0), Left(x1), ty_Double, x2)
new_esEs24(x0, x1, app(app(ty_@2, x2), x3))
new_esEs23(x0, x1, ty_Double)
new_esEs4(Just(x0), Just(x1), ty_Char)
new_ltEs20(x0, x1, ty_Ordering)
new_esEs7(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_lt13(x0, x1, app(app(ty_@2, x2), x3))
new_esEs12(True, False)
new_esEs12(False, True)
new_compare28(x0, x1, True)
new_sr(x0, x1)
new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_compare9(@0, @0)
new_esEs11(x0, x1, ty_Char)
new_ltEs19(x0, x1, ty_Double)
new_fsEs(x0)
new_ltEs14(True, True)
new_esEs21(x0, x1, ty_Integer)
new_lt20(x0, x1, app(ty_Maybe, x2))
new_esEs6(@2(x0, x1), @2(x2, x3), x4, x5)
new_ltEs14(False, False)
new_compare([], [], x0)
new_esEs11(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs18(x0, x1, app(ty_[], x2))
new_esEs20(x0, x1, app(ty_Ratio, x2))
new_ltEs15(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_ltEs8(Just(x0), Just(x1), app(ty_Maybe, x2))
new_esEs7(Right(x0), Right(x1), x2, ty_Bool)
new_ltEs5(x0, x1)
new_esEs25(x0, x1, ty_Int)
new_esEs11(x0, x1, ty_Ordering)
new_esEs23(x0, x1, ty_Bool)
new_esEs7(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_ltEs20(x0, x1, ty_Float)
new_primEqNat0(Zero, Succ(x0))
new_not(True)
new_esEs11(x0, x1, app(ty_[], x2))
new_lt14(x0, x1, app(app(ty_Either, x2), x3))
new_primCompAux0(x0, EQ)
new_esEs20(x0, x1, app(app(ty_Either, x2), x3))
new_compare112(x0, x1, True, x2, x3, x4)
new_ltEs15(Left(x0), Left(x1), ty_Float, x2)
new_esEs25(x0, x1, ty_Ordering)
new_ltEs20(x0, x1, ty_Integer)
new_esEs20(x0, x1, ty_Integer)
new_esEs26(x0, x1, ty_@0)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_compare111(x0, x1, True)
new_ltEs15(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_not(False)
new_esEs21(x0, x1, ty_@0)
new_ltEs6(EQ, GT)
new_ltEs6(GT, EQ)
new_lt13(x0, x1, app(ty_[], x2))
new_ltEs15(Left(x0), Left(x1), ty_Int, x2)
new_lt14(x0, x1, ty_Float)
new_ltEs20(x0, x1, ty_@0)
new_esEs23(x0, x1, ty_Int)
new_ltEs19(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs8(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_esEs10([], [], x0)
new_ltEs19(x0, x1, ty_Ordering)
new_esEs24(x0, x1, ty_Bool)
new_ltEs15(Right(x0), Right(x1), x2, ty_@0)
new_ltEs15(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_ltEs15(Right(x0), Right(x1), x2, ty_Ordering)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_compare11(x0, x1, app(app(ty_Either, x2), x3))
new_lt14(x0, x1, ty_@0)
new_ltEs8(Just(x0), Just(x1), ty_Ordering)
new_esEs7(Right(x0), Right(x1), x2, ty_Int)
new_esEs4(Just(x0), Just(x1), ty_@0)
new_esEs25(x0, x1, ty_Double)
new_lt20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs19(x0, x1, app(ty_[], x2))
new_ltEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs4(Nothing, Just(x0), x1)
new_esEs25(x0, x1, app(app(ty_Either, x2), x3))
new_compare11(x0, x1, app(ty_Maybe, x2))
new_esEs11(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare7(x0, x1)
new_esEs24(x0, x1, ty_Float)
new_esEs7(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_esEs23(x0, x1, app(ty_[], x2))
new_esEs4(Just(x0), Just(x1), app(ty_Maybe, x2))
new_ltEs18(x0, x1, app(ty_Ratio, x2))
new_lt20(x0, x1, app(app(ty_Either, x2), x3))
new_esEs19(x0, x1, ty_Bool)
new_esEs25(x0, x1, ty_@0)
new_esEs7(Right(x0), Right(x1), x2, ty_Double)
new_esEs7(Right(x0), Right(x1), x2, ty_Float)
new_esEs7(Left(x0), Left(x1), ty_Integer, x2)
new_lt20(x0, x1, ty_Int)
new_sr0(Integer(x0), Integer(x1))
new_esEs20(x0, x1, ty_Ordering)
new_compare11(x0, x1, ty_Char)
new_lt20(x0, x1, app(ty_[], x2))
new_ltEs4(@2(x0, x1), @2(x2, x3), x4, x5)
new_ltEs15(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_primEqInt(Pos(Zero), Pos(Zero))
new_esEs26(x0, x1, app(ty_Ratio, x2))
new_esEs19(x0, x1, app(ty_Ratio, x2))
new_esEs22(x0, x1, ty_Ordering)
new_esEs21(x0, x1, ty_Int)
new_esEs7(Left(x0), Left(x1), ty_Int, x2)
new_esEs24(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_primCompAux0(x0, GT)
new_ltEs18(x0, x1, ty_Ordering)
new_esEs9(Integer(x0), Integer(x1))
new_esEs19(x0, x1, ty_@0)
new_esEs7(Right(x0), Right(x1), x2, ty_@0)
new_esEs22(x0, x1, ty_Float)
new_compare24(x0, x1, False, x2, x3)
new_compare10(x0, x1, True, x2, x3)
new_esEs21(x0, x1, ty_Float)
new_ltEs20(x0, x1, ty_Double)
new_primEqNat0(Succ(x0), Zero)
new_esEs22(x0, x1, ty_@0)
new_compare10(x0, x1, False, x2, x3)
new_compare11(x0, x1, ty_Float)
new_ltEs8(Just(x0), Just(x1), ty_Bool)
new_ltEs8(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_compare113(x0, x1, False)
new_compare26(x0, x1, True, x2, x3)
new_ltEs12(x0, x1)
new_ltEs19(x0, x1, ty_Float)
new_ltEs16(x0, x1)
new_ltEs15(Right(x0), Right(x1), x2, app(ty_[], x3))
new_compare11(x0, x1, ty_Bool)
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))

We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof

Q DP problem:
The TRS P consists of the following rules:

new_intersectFM_C2IntersectFM_C13(zzz256, zzz257, zzz258, zzz259, zzz260, zzz261, zzz262, zzz263, zzz264, zzz265, zzz266, zzz267, zzz268, zzz269, False, bh, ca, cb) → new_intersectFM_C2IntersectFM_C17(zzz256, zzz257, zzz258, zzz259, zzz260, zzz261, zzz262, zzz263, zzz264, zzz265, zzz266, zzz267, zzz268, zzz269, new_gt0(zzz260, zzz265, bh), bh, ca, cb)
new_intersectFM_C2IntersectFM_C18(zzz256, zzz257, zzz258, zzz259, zzz260, zzz261, zzz262, zzz263, zzz264, EmptyFM, bh, ca, cb) → new_intersectFM_C(new_intersectFM_C2Lts1(zzz256, zzz257, zzz258, zzz259, zzz260, bh, ca), zzz263, bh, ca)
new_intersectFM_C2IntersectFM_C15(zzz241, zzz242, zzz243, zzz244, zzz245, zzz246, zzz247, zzz248, zzz249, zzz250, zzz251, zzz252, zzz253, zzz254, True, be, bf, bg) → new_intersectFM_C2IntersectFM_C16(zzz241, zzz242, zzz243, zzz244, zzz245, zzz246, zzz247, zzz248, zzz249, zzz254, be, bf, bg)
new_intersectFM_C2IntersectFM_C110(zzz273, zzz274, zzz275, zzz276, zzz277, zzz278, zzz279, zzz280, zzz281, zzz282, EmptyFM, cc, cd, ce) → new_intersectFM_C(new_intersectFM_C2Gts2(zzz273, zzz274, zzz275, zzz276, zzz277, zzz278, cc, cd), zzz282, cc, cd)
new_intersectFM_C2IntersectFM_C14(zzz273, zzz274, zzz275, zzz276, zzz277, zzz278, zzz279, zzz280, zzz281, zzz282, zzz283, zzz284, zzz285, Branch(zzz2860, zzz2861, zzz2862, zzz2863, zzz2864), zzz287, True, cc, cd, ce) → new_intersectFM_C2IntersectFM_C14(zzz273, zzz274, zzz275, zzz276, zzz277, zzz278, zzz279, zzz280, zzz281, zzz282, zzz2860, zzz2861, zzz2862, zzz2863, zzz2864, new_lt15(Just(zzz278), zzz2860, cc), cc, cd, ce)
new_intersectFM_C2IntersectFM_C12(zzz241, zzz242, zzz243, zzz244, zzz245, zzz246, zzz247, zzz248, zzz249, zzz250, zzz251, zzz252, EmptyFM, zzz254, True, be, bf, bg) → new_intersectFM_C(new_intersectFM_C2Gts0(zzz241, zzz242, zzz243, zzz244, zzz245, be, bf), zzz249, be, bf)
new_intersectFM_C2IntersectFM_C11(zzz354, zzz355, zzz356, zzz357, zzz358, zzz359, zzz360, zzz361, EmptyFM, h, ba, bb) → new_intersectFM_C(new_intersectFM_C2Gts(zzz354, zzz355, zzz356, zzz357, h, ba), zzz361, h, ba)
new_intersectFM_C2IntersectFM_C13(zzz256, zzz257, zzz258, zzz259, zzz260, zzz261, zzz262, zzz263, zzz264, zzz265, zzz266, zzz267, EmptyFM, zzz269, True, bh, ca, cb) → new_intersectFM_C(new_intersectFM_C2Lts1(zzz256, zzz257, zzz258, zzz259, zzz260, bh, ca), zzz263, bh, ca)
new_intersectFM_C2IntersectFM_C11(zzz354, zzz355, zzz356, zzz357, zzz358, zzz359, zzz360, zzz361, Branch(zzz3650, zzz3651, zzz3652, zzz3653, zzz3654), h, ba, bb) → new_intersectFM_C2IntersectFM_C1(zzz354, zzz355, zzz356, zzz357, zzz358, zzz359, zzz360, zzz361, zzz3650, zzz3651, zzz3652, zzz3653, zzz3654, new_lt15(Nothing, zzz3650, h), h, ba, bb)
new_intersectFM_C2IntersectFM_C14(zzz273, zzz274, zzz275, zzz276, zzz277, zzz278, zzz279, zzz280, zzz281, zzz282, zzz283, zzz284, zzz285, EmptyFM, zzz287, True, cc, cd, ce) → new_intersectFM_C(new_intersectFM_C2Lts2(zzz273, zzz274, zzz275, zzz276, zzz277, zzz278, cc, cd), zzz281, cc, cd)
new_intersectFM_C2IntersectFM_C16(zzz241, zzz242, zzz243, zzz244, zzz245, zzz246, zzz247, zzz248, zzz249, EmptyFM, be, bf, bg) → new_intersectFM_C(new_intersectFM_C2Gts0(zzz241, zzz242, zzz243, zzz244, zzz245, be, bf), zzz249, be, bf)
new_intersectFM_C2IntersectFM_C17(zzz256, zzz257, zzz258, zzz259, zzz260, zzz261, zzz262, zzz263, zzz264, zzz265, zzz266, zzz267, zzz268, zzz269, False, bh, ca, cb) → new_intersectFM_C(new_intersectFM_C2Gts1(zzz256, zzz257, zzz258, zzz259, zzz260, bh, ca), zzz264, bh, ca)
new_intersectFM_C(Branch(Just(zzz300), zzz31, zzz32, zzz33, zzz34), Branch(Just(zzz400), zzz41, zzz42, zzz43, zzz44), bc, bd) → new_intersectFM_C2IntersectFM_C14(zzz300, zzz31, zzz32, zzz33, zzz34, zzz400, zzz41, zzz42, zzz43, zzz44, Just(zzz300), zzz31, zzz32, zzz33, zzz34, new_esEs8(new_compare27(Just(zzz400), Just(zzz300), new_esEs31(zzz400, zzz300, bc), bc), LT), bc, bd, bd)
new_intersectFM_C2IntersectFM_C1(zzz354, zzz355, zzz356, zzz357, zzz358, zzz359, zzz360, zzz361, zzz362, zzz363, zzz364, EmptyFM, zzz366, True, h, ba, bb) → new_intersectFM_C(new_intersectFM_C2Lts(zzz354, zzz355, zzz356, zzz357, h, ba), zzz360, h, ba)
new_intersectFM_C2IntersectFM_C1(zzz354, zzz355, zzz356, zzz357, zzz358, zzz359, zzz360, zzz361, zzz362, zzz363, zzz364, zzz365, zzz366, False, h, ba, bb) → new_intersectFM_C2IntersectFM_C10(zzz354, zzz355, zzz356, zzz357, zzz358, zzz359, zzz360, zzz361, zzz362, zzz363, zzz364, zzz365, zzz366, new_gt1(zzz362, h), h, ba, bb)
new_intersectFM_C2IntersectFM_C13(zzz256, zzz257, zzz258, zzz259, zzz260, zzz261, zzz262, zzz263, zzz264, zzz265, zzz266, zzz267, Branch(zzz2680, zzz2681, zzz2682, zzz2683, zzz2684), zzz269, True, bh, ca, cb) → new_intersectFM_C2IntersectFM_C13(zzz256, zzz257, zzz258, zzz259, zzz260, zzz261, zzz262, zzz263, zzz264, zzz2680, zzz2681, zzz2682, zzz2683, zzz2684, new_lt15(Just(zzz260), zzz2680, bh), bh, ca, cb)
new_intersectFM_C2IntersectFM_C12(zzz241, zzz242, zzz243, zzz244, zzz245, zzz246, zzz247, zzz248, zzz249, zzz250, zzz251, zzz252, Branch(zzz2530, zzz2531, zzz2532, zzz2533, zzz2534), zzz254, True, be, bf, bg) → new_intersectFM_C2IntersectFM_C12(zzz241, zzz242, zzz243, zzz244, zzz245, zzz246, zzz247, zzz248, zzz249, zzz2530, zzz2531, zzz2532, zzz2533, zzz2534, new_lt15(Nothing, zzz2530, be), be, bf, bg)
new_intersectFM_C2IntersectFM_C14(zzz273, zzz274, zzz275, zzz276, zzz277, zzz278, zzz279, zzz280, zzz281, zzz282, zzz283, zzz284, zzz285, zzz286, zzz287, False, cc, cd, ce) → new_intersectFM_C2IntersectFM_C19(zzz273, zzz274, zzz275, zzz276, zzz277, zzz278, zzz279, zzz280, zzz281, zzz282, zzz283, zzz284, zzz285, zzz286, zzz287, new_gt0(zzz278, zzz283, cc), cc, cd, ce)
new_intersectFM_C2IntersectFM_C10(zzz354, zzz355, zzz356, zzz357, zzz358, zzz359, zzz360, zzz361, zzz362, zzz363, zzz364, zzz365, zzz366, False, h, ba, bb) → new_intersectFM_C(new_intersectFM_C2Gts(zzz354, zzz355, zzz356, zzz357, h, ba), zzz361, h, ba)
new_intersectFM_C2IntersectFM_C16(zzz241, zzz242, zzz243, zzz244, zzz245, zzz246, zzz247, zzz248, zzz249, EmptyFM, be, bf, bg) → new_intersectFM_C(new_intersectFM_C2Lts0(zzz241, zzz242, zzz243, zzz244, zzz245, be, bf), zzz248, be, bf)
new_intersectFM_C2IntersectFM_C110(zzz273, zzz274, zzz275, zzz276, zzz277, zzz278, zzz279, zzz280, zzz281, zzz282, EmptyFM, cc, cd, ce) → new_intersectFM_C(new_intersectFM_C2Lts2(zzz273, zzz274, zzz275, zzz276, zzz277, zzz278, cc, cd), zzz281, cc, cd)
new_intersectFM_C2IntersectFM_C11(zzz354, zzz355, zzz356, zzz357, zzz358, zzz359, zzz360, zzz361, EmptyFM, h, ba, bb) → new_intersectFM_C(new_intersectFM_C2Lts(zzz354, zzz355, zzz356, zzz357, h, ba), zzz360, h, ba)
new_intersectFM_C2IntersectFM_C12(zzz241, zzz242, zzz243, zzz244, zzz245, zzz246, zzz247, zzz248, zzz249, zzz250, zzz251, zzz252, EmptyFM, zzz254, True, be, bf, bg) → new_intersectFM_C(new_intersectFM_C2Lts0(zzz241, zzz242, zzz243, zzz244, zzz245, be, bf), zzz248, be, bf)
new_intersectFM_C2IntersectFM_C12(zzz241, zzz242, zzz243, zzz244, zzz245, zzz246, zzz247, zzz248, zzz249, zzz250, zzz251, zzz252, zzz253, zzz254, False, be, bf, bg) → new_intersectFM_C2IntersectFM_C15(zzz241, zzz242, zzz243, zzz244, zzz245, zzz246, zzz247, zzz248, zzz249, zzz250, zzz251, zzz252, zzz253, zzz254, new_gt1(zzz250, be), be, bf, bg)
new_intersectFM_C2IntersectFM_C10(zzz354, zzz355, zzz356, zzz357, zzz358, zzz359, zzz360, zzz361, zzz362, zzz363, zzz364, zzz365, zzz366, False, h, ba, bb) → new_intersectFM_C(new_intersectFM_C2Lts(zzz354, zzz355, zzz356, zzz357, h, ba), zzz360, h, ba)
new_intersectFM_C2IntersectFM_C18(zzz256, zzz257, zzz258, zzz259, zzz260, zzz261, zzz262, zzz263, zzz264, EmptyFM, bh, ca, cb) → new_intersectFM_C(new_intersectFM_C2Gts1(zzz256, zzz257, zzz258, zzz259, zzz260, bh, ca), zzz264, bh, ca)
new_intersectFM_C(Branch(Nothing, zzz31, zzz32, zzz33, zzz34), Branch(Nothing, zzz41, zzz42, zzz43, zzz44), bc, bd) → new_intersectFM_C2IntersectFM_C1(zzz31, zzz32, zzz33, zzz34, zzz41, zzz42, zzz43, zzz44, Nothing, zzz31, zzz32, zzz33, zzz34, new_esEs8(new_compare27(Nothing, Nothing, True, bc), LT), bc, bd, bd)
new_intersectFM_C2IntersectFM_C17(zzz256, zzz257, zzz258, zzz259, zzz260, zzz261, zzz262, zzz263, zzz264, zzz265, zzz266, zzz267, zzz268, zzz269, True, bh, ca, cb) → new_intersectFM_C2IntersectFM_C18(zzz256, zzz257, zzz258, zzz259, zzz260, zzz261, zzz262, zzz263, zzz264, zzz269, bh, ca, cb)
new_intersectFM_C2IntersectFM_C1(zzz354, zzz355, zzz356, zzz357, zzz358, zzz359, zzz360, zzz361, zzz362, zzz363, zzz364, Branch(zzz3650, zzz3651, zzz3652, zzz3653, zzz3654), zzz366, True, h, ba, bb) → new_intersectFM_C2IntersectFM_C1(zzz354, zzz355, zzz356, zzz357, zzz358, zzz359, zzz360, zzz361, zzz3650, zzz3651, zzz3652, zzz3653, zzz3654, new_lt15(Nothing, zzz3650, h), h, ba, bb)
new_intersectFM_C2IntersectFM_C13(zzz256, zzz257, zzz258, zzz259, zzz260, zzz261, zzz262, zzz263, zzz264, zzz265, zzz266, zzz267, EmptyFM, zzz269, True, bh, ca, cb) → new_intersectFM_C(new_intersectFM_C2Gts1(zzz256, zzz257, zzz258, zzz259, zzz260, bh, ca), zzz264, bh, ca)
new_intersectFM_C2IntersectFM_C16(zzz241, zzz242, zzz243, zzz244, zzz245, zzz246, zzz247, zzz248, zzz249, Branch(zzz2530, zzz2531, zzz2532, zzz2533, zzz2534), be, bf, bg) → new_intersectFM_C2IntersectFM_C12(zzz241, zzz242, zzz243, zzz244, zzz245, zzz246, zzz247, zzz248, zzz249, zzz2530, zzz2531, zzz2532, zzz2533, zzz2534, new_lt15(Nothing, zzz2530, be), be, bf, bg)
new_intersectFM_C2IntersectFM_C17(zzz256, zzz257, zzz258, zzz259, zzz260, zzz261, zzz262, zzz263, zzz264, zzz265, zzz266, zzz267, zzz268, zzz269, False, bh, ca, cb) → new_intersectFM_C(new_intersectFM_C2Lts1(zzz256, zzz257, zzz258, zzz259, zzz260, bh, ca), zzz263, bh, ca)
new_intersectFM_C2IntersectFM_C19(zzz273, zzz274, zzz275, zzz276, zzz277, zzz278, zzz279, zzz280, zzz281, zzz282, zzz283, zzz284, zzz285, zzz286, zzz287, False, cc, cd, ce) → new_intersectFM_C(new_intersectFM_C2Gts2(zzz273, zzz274, zzz275, zzz276, zzz277, zzz278, cc, cd), zzz282, cc, cd)
new_intersectFM_C2IntersectFM_C15(zzz241, zzz242, zzz243, zzz244, zzz245, zzz246, zzz247, zzz248, zzz249, zzz250, zzz251, zzz252, zzz253, zzz254, False, be, bf, bg) → new_intersectFM_C(new_intersectFM_C2Lts0(zzz241, zzz242, zzz243, zzz244, zzz245, be, bf), zzz248, be, bf)
new_intersectFM_C2IntersectFM_C14(zzz273, zzz274, zzz275, zzz276, zzz277, zzz278, zzz279, zzz280, zzz281, zzz282, zzz283, zzz284, zzz285, EmptyFM, zzz287, True, cc, cd, ce) → new_intersectFM_C(new_intersectFM_C2Gts2(zzz273, zzz274, zzz275, zzz276, zzz277, zzz278, cc, cd), zzz282, cc, cd)
new_intersectFM_C(Branch(Nothing, zzz31, zzz32, zzz33, zzz34), Branch(Just(zzz400), zzz41, zzz42, zzz43, zzz44), bc, bd) → new_intersectFM_C2IntersectFM_C13(zzz31, zzz32, zzz33, zzz34, zzz400, zzz41, zzz42, zzz43, zzz44, Nothing, zzz31, zzz32, zzz33, zzz34, new_esEs8(new_compare27(Just(zzz400), Nothing, False, bc), LT), bc, bd, bd)
new_intersectFM_C2IntersectFM_C19(zzz273, zzz274, zzz275, zzz276, zzz277, zzz278, zzz279, zzz280, zzz281, zzz282, zzz283, zzz284, zzz285, zzz286, zzz287, True, cc, cd, ce) → new_intersectFM_C2IntersectFM_C110(zzz273, zzz274, zzz275, zzz276, zzz277, zzz278, zzz279, zzz280, zzz281, zzz282, zzz287, cc, cd, ce)
new_intersectFM_C2IntersectFM_C15(zzz241, zzz242, zzz243, zzz244, zzz245, zzz246, zzz247, zzz248, zzz249, zzz250, zzz251, zzz252, zzz253, zzz254, False, be, bf, bg) → new_intersectFM_C(new_intersectFM_C2Gts0(zzz241, zzz242, zzz243, zzz244, zzz245, be, bf), zzz249, be, bf)
new_intersectFM_C(Branch(Just(zzz300), zzz31, zzz32, zzz33, zzz34), Branch(Nothing, zzz41, zzz42, zzz43, zzz44), bc, bd) → new_intersectFM_C2IntersectFM_C12(zzz300, zzz31, zzz32, zzz33, zzz34, zzz41, zzz42, zzz43, zzz44, Just(zzz300), zzz31, zzz32, zzz33, zzz34, new_esEs8(new_compare27(Nothing, Just(zzz300), False, bc), LT), bc, bd, bd)
new_intersectFM_C2IntersectFM_C18(zzz256, zzz257, zzz258, zzz259, zzz260, zzz261, zzz262, zzz263, zzz264, Branch(zzz2680, zzz2681, zzz2682, zzz2683, zzz2684), bh, ca, cb) → new_intersectFM_C2IntersectFM_C13(zzz256, zzz257, zzz258, zzz259, zzz260, zzz261, zzz262, zzz263, zzz264, zzz2680, zzz2681, zzz2682, zzz2683, zzz2684, new_lt15(Just(zzz260), zzz2680, bh), bh, ca, cb)
new_intersectFM_C2IntersectFM_C19(zzz273, zzz274, zzz275, zzz276, zzz277, zzz278, zzz279, zzz280, zzz281, zzz282, zzz283, zzz284, zzz285, zzz286, zzz287, False, cc, cd, ce) → new_intersectFM_C(new_intersectFM_C2Lts2(zzz273, zzz274, zzz275, zzz276, zzz277, zzz278, cc, cd), zzz281, cc, cd)
new_intersectFM_C2IntersectFM_C1(zzz354, zzz355, zzz356, zzz357, zzz358, zzz359, zzz360, zzz361, zzz362, zzz363, zzz364, EmptyFM, zzz366, True, h, ba, bb) → new_intersectFM_C(new_intersectFM_C2Gts(zzz354, zzz355, zzz356, zzz357, h, ba), zzz361, h, ba)
new_intersectFM_C2IntersectFM_C10(zzz354, zzz355, zzz356, zzz357, zzz358, zzz359, zzz360, zzz361, zzz362, zzz363, zzz364, zzz365, zzz366, True, h, ba, bb) → new_intersectFM_C2IntersectFM_C11(zzz354, zzz355, zzz356, zzz357, zzz358, zzz359, zzz360, zzz361, zzz366, h, ba, bb)
new_intersectFM_C2IntersectFM_C110(zzz273, zzz274, zzz275, zzz276, zzz277, zzz278, zzz279, zzz280, zzz281, zzz282, Branch(zzz2860, zzz2861, zzz2862, zzz2863, zzz2864), cc, cd, ce) → new_intersectFM_C2IntersectFM_C14(zzz273, zzz274, zzz275, zzz276, zzz277, zzz278, zzz279, zzz280, zzz281, zzz282, zzz2860, zzz2861, zzz2862, zzz2863, zzz2864, new_lt15(Just(zzz278), zzz2860, cc), cc, cd, ce)

The TRS R consists of the following rules:

new_splitLT3(EmptyFM, bc, bd) → new_emptyFM(bc, bd)
new_esEs4(Just(zzz4000), Just(zzz3000), app(ty_Maybe, ddd)) → new_esEs4(zzz4000, zzz3000, ddd)
new_esEs23(zzz400001, zzz3300001, app(app(ty_Either, dbe), dbf)) → new_esEs7(zzz400001, zzz3300001, dbe, dbf)
new_ltEs19(zzz40000, zzz330000, ty_Integer) → new_ltEs16(zzz40000, zzz330000)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_esEs7(Left(zzz4000), Left(zzz3000), app(app(ty_Either, cef), ceg), cch) → new_esEs7(zzz4000, zzz3000, cef, ceg)
new_esEs21(zzz4002, zzz3002, app(app(ty_@2, bbc), bbd)) → new_esEs6(zzz4002, zzz3002, bbc, bbd)
new_ltEs19(zzz40000, zzz330000, app(ty_Ratio, bed)) → new_ltEs11(zzz40000, zzz330000, bed)
new_esEs7(Right(zzz4000), Right(zzz3000), ccg, ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_ltEs15(Right(zzz400000), Right(zzz3300000), bfc, app(ty_Maybe, cbg)) → new_ltEs8(zzz400000, zzz3300000, cbg)
new_lt14(zzz400000, zzz3300000, ty_Integer) → new_lt7(zzz400000, zzz3300000)
new_ltEs18(zzz400002, zzz3300002, ty_Int) → new_ltEs12(zzz400002, zzz3300002)
new_esEs24(zzz4000, zzz3000, app(app(app(ty_@3, bcc), bcd), bce)) → new_esEs5(zzz4000, zzz3000, bcc, bcd, bce)
new_esEs17(Char(zzz4000), Char(zzz3000)) → new_primEqNat0(zzz4000, zzz3000)
new_esEs20(zzz4001, zzz3001, ty_Bool) → new_esEs12(zzz4001, zzz3001)
new_esEs7(Left(zzz4000), Left(zzz3000), app(ty_Maybe, cfa), cch) → new_esEs4(zzz4000, zzz3000, cfa)
new_esEs31(zzz400, zzz300, ty_Ordering) → new_esEs8(zzz400, zzz300)
new_ltEs15(Right(zzz400000), Right(zzz3300000), bfc, ty_Float) → new_ltEs9(zzz400000, zzz3300000)
new_esEs24(zzz4000, zzz3000, ty_Char) → new_esEs17(zzz4000, zzz3000)
new_ltEs20(zzz400001, zzz3300001, app(ty_[], bgg)) → new_ltEs10(zzz400001, zzz3300001, bgg)
new_compare([], :(zzz3300000, zzz3300001), bec) → LT
new_compare10(zzz400000, zzz3300000, True, dc, dd) → LT
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(app(app(ty_@3, che), chf), chg)) → new_ltEs13(zzz400000, zzz3300000, che, chf, chg)
new_lt13(zzz400001, zzz3300001, app(app(app(ty_@3, dah), dba), dbb)) → new_lt8(zzz400001, zzz3300001, dah, dba, dbb)
new_esEs19(zzz4000, zzz3000, ty_Float) → new_esEs15(zzz4000, zzz3000)
new_esEs24(zzz4000, zzz3000, app(ty_Maybe, bcb)) → new_esEs4(zzz4000, zzz3000, bcb)
new_esEs4(Nothing, Just(zzz3000), cdb) → False
new_esEs4(Just(zzz4000), Nothing, cdb) → False
new_lt20(zzz400000, zzz3300000, app(app(app(ty_@3, bfh), bga), bgb)) → new_lt8(zzz400000, zzz3300000, bfh, bga, bgb)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Char) → new_esEs17(zzz4000, zzz3000)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_@0) → new_esEs14(zzz4000, zzz3000)
new_addToFM_C20(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, bc, bd) → new_addToFM_C10(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_gt(zzz330, zzz3440, bc), bc, bd)
new_mkBalBranch6MkBalBranch3(zzz730, zzz731, zzz734, Branch(zzz1520, zzz1521, zzz1522, zzz1523, zzz1524), True, bc, bd) → new_mkBalBranch6MkBalBranch11(zzz730, zzz731, zzz734, zzz1520, zzz1521, zzz1522, zzz1523, zzz1524, new_lt9(new_sizeFM0(zzz1524, bc, bd), new_sr(Pos(Succ(Succ(Zero))), new_sizeFM0(zzz1523, bc, bd))), bc, bd)
new_esEs25(zzz4001, zzz3001, ty_Char) → new_esEs17(zzz4001, zzz3001)
new_esEs31(zzz400, zzz300, app(app(app(ty_@3, fc), fd), ff)) → new_esEs5(zzz400, zzz300, fc, fd, ff)
new_sizeFM0(Branch(zzz7340, zzz7341, zzz7342, zzz7343, zzz7344), bc, bd) → zzz7342
new_ltEs20(zzz400001, zzz3300001, ty_Double) → new_ltEs7(zzz400001, zzz3300001)
new_primMulNat0(Zero, Zero) → Zero
new_esEs7(Left(zzz4000), Left(zzz3000), app(app(app(ty_@3, cfb), cfc), cfd), cch) → new_esEs5(zzz4000, zzz3000, cfb, cfc, cfd)
new_primPlusInt0(zzz15220, Pos(zzz4100)) → Pos(new_primPlusNat1(zzz15220, zzz4100))
new_esEs26(zzz400000, zzz3300000, ty_Float) → new_esEs15(zzz400000, zzz3300000)
new_esEs7(Right(zzz4000), Right(zzz3000), ccg, ty_Double) → new_esEs16(zzz4000, zzz3000)
new_compare(:(zzz400000, zzz400001), [], bec) → GT
new_compare11(zzz400000, zzz3300000, ty_Int) → new_compare7(zzz400000, zzz3300000)
new_lt14(zzz400000, zzz3300000, ty_Ordering) → new_lt6(zzz400000, zzz3300000)
new_compare29(zzz400000, zzz3300000, True) → EQ
new_esEs23(zzz400001, zzz3300001, app(ty_Ratio, daf)) → new_esEs13(zzz400001, zzz3300001, daf)
new_esEs12(True, True) → True
new_ltEs18(zzz400002, zzz3300002, ty_Integer) → new_ltEs16(zzz400002, zzz3300002)
new_esEs20(zzz4001, zzz3001, app(ty_Maybe, hd)) → new_esEs4(zzz4001, zzz3001, hd)
new_ltEs18(zzz400002, zzz3300002, ty_@0) → new_ltEs5(zzz400002, zzz3300002)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Double, bfd) → new_ltEs7(zzz400000, zzz3300000)
new_esEs21(zzz4002, zzz3002, app(ty_[], bbb)) → new_esEs10(zzz4002, zzz3002, bbb)
new_esEs22(zzz400000, zzz3300000, ty_Char) → new_esEs17(zzz400000, zzz3300000)
new_ltEs20(zzz400001, zzz3300001, app(ty_Maybe, bha)) → new_ltEs8(zzz400001, zzz3300001, bha)
new_intersectFM_C2Gts(zzz354, zzz355, zzz356, zzz357, h, ba) → new_splitGT3(Branch(Nothing, zzz354, zzz355, zzz356, zzz357), h, ba)
new_esEs7(Right(zzz4000), Right(zzz3000), ccg, ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_esEs23(zzz400001, zzz3300001, ty_Bool) → new_esEs12(zzz400001, zzz3300001)
new_ltEs18(zzz400002, zzz3300002, ty_Char) → new_ltEs17(zzz400002, zzz3300002)
new_compare11(zzz400000, zzz3300000, app(ty_Maybe, cde)) → new_compare13(zzz400000, zzz3300000, cde)
new_ltEs15(Right(zzz400000), Right(zzz3300000), bfc, ty_@0) → new_ltEs5(zzz400000, zzz3300000)
new_ltEs14(False, True) → True
new_esEs24(zzz4000, zzz3000, ty_@0) → new_esEs14(zzz4000, zzz3000)
new_splitLT4(EmptyFM, zzz260, bh, ca) → new_emptyFM(bh, ca)
new_esEs25(zzz4001, zzz3001, ty_Double) → new_esEs16(zzz4001, zzz3001)
new_esEs23(zzz400001, zzz3300001, app(ty_Maybe, dag)) → new_esEs4(zzz400001, zzz3300001, dag)
new_lt14(zzz400000, zzz3300000, app(app(ty_Either, caa), cab)) → new_lt18(zzz400000, zzz3300000, caa, cab)
new_compare26(zzz400000, zzz3300000, False, caa, cab) → new_compare114(zzz400000, zzz3300000, new_ltEs15(zzz400000, zzz3300000, caa, cab), caa, cab)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Char, bfd) → new_ltEs17(zzz400000, zzz3300000)
new_esEs7(Right(zzz4000), Right(zzz3000), ccg, app(ty_[], cgg)) → new_esEs10(zzz4000, zzz3000, cgg)
new_primPlusInt2(EmptyFM, zzz730, zzz731, zzz734, bc, bd) → new_primPlusInt0(Zero, new_mkBalBranch6Size_r(zzz730, zzz731, zzz734, EmptyFM, bc, bd))
new_esEs7(Right(zzz4000), Right(zzz3000), ccg, app(app(app(ty_@3, cgd), cge), cgf)) → new_esEs5(zzz4000, zzz3000, cgd, cge, cgf)
new_esEs26(zzz400000, zzz3300000, app(ty_[], bfe)) → new_esEs10(zzz400000, zzz3300000, bfe)
new_esEs20(zzz4001, zzz3001, app(ty_Ratio, hc)) → new_esEs13(zzz4001, zzz3001, hc)
new_esEs29(zzz400, Just(zzz3300), app(ty_Ratio, cda)) → new_esEs13(zzz400, zzz3300, cda)
new_esEs31(zzz400, zzz300, ty_Char) → new_esEs17(zzz400, zzz300)
new_mkVBalBranch0(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), bc, bd) → new_mkVBalBranch3MkVBalBranch20(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_lt9(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, bc, bd)), new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, bc, bd)), bc, bd)
new_compare11(zzz400000, zzz3300000, ty_Integer) → new_compare18(zzz400000, zzz3300000)
new_compare15(zzz400000, zzz3300000) → new_compare29(zzz400000, zzz3300000, new_esEs12(zzz400000, zzz3300000))
new_esEs22(zzz400000, zzz3300000, ty_Integer) → new_esEs9(zzz400000, zzz3300000)
new_ltEs9(zzz40000, zzz330000) → new_fsEs(new_compare12(zzz40000, zzz330000))
new_lt13(zzz400001, zzz3300001, app(app(ty_Either, dbe), dbf)) → new_lt18(zzz400001, zzz3300001, dbe, dbf)
new_ltEs20(zzz400001, zzz3300001, ty_Integer) → new_ltEs16(zzz400001, zzz3300001)
new_lt20(zzz400000, zzz3300000, app(ty_Maybe, bfg)) → new_lt15(zzz400000, zzz3300000, bfg)
new_lt14(zzz400000, zzz3300000, ty_Char) → new_lt12(zzz400000, zzz3300000)
new_intersectFM_C2Lts1(zzz256, zzz257, zzz258, zzz259, zzz260, bh, ca) → new_splitLT21(Nothing, zzz256, zzz257, zzz258, zzz259, zzz260, new_lt15(Just(zzz260), Nothing, bh), bh, ca)
new_esEs19(zzz4000, zzz3000, app(app(app(ty_@3, gc), gd), ge)) → new_esEs5(zzz4000, zzz3000, gc, gd, ge)
new_esEs19(zzz4000, zzz3000, ty_@0) → new_esEs14(zzz4000, zzz3000)
new_esEs26(zzz400000, zzz3300000, app(ty_Maybe, bfg)) → new_esEs4(zzz400000, zzz3300000, bfg)
new_esEs20(zzz4001, zzz3001, app(app(ty_@2, baa), bab)) → new_esEs6(zzz4001, zzz3001, baa, bab)
new_primPlusInt(Pos(zzz5230), zzz458, zzz455, zzz457, da, db) → new_primPlusInt0(zzz5230, new_sizeFM1(zzz458, da, db))
new_ltEs15(Right(zzz400000), Right(zzz3300000), bfc, app(app(ty_@2, ccc), ccd)) → new_ltEs4(zzz400000, zzz3300000, ccc, ccd)
new_lt13(zzz400001, zzz3300001, ty_Char) → new_lt12(zzz400001, zzz3300001)
new_esEs20(zzz4001, zzz3001, ty_@0) → new_esEs14(zzz4001, zzz3001)
new_esEs31(zzz400, zzz300, ty_Int) → new_esEs18(zzz400, zzz300)
new_esEs22(zzz400000, zzz3300000, app(app(ty_Either, caa), cab)) → new_esEs7(zzz400000, zzz3300000, caa, cab)
new_splitLT22(zzz330, zzz331, zzz332, zzz333, zzz334, True, bc, bd) → new_splitLT3(zzz333, bc, bd)
new_lt13(zzz400001, zzz3300001, app(ty_[], dae)) → new_lt4(zzz400001, zzz3300001, dae)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Ordering, bfd) → new_ltEs6(zzz400000, zzz3300000)
new_splitGT22(zzz340, zzz341, zzz342, zzz343, zzz344, False, bc, bd) → new_splitGT12(zzz340, zzz341, zzz342, zzz343, zzz344, new_lt15(Nothing, zzz340, bc), bc, bd)
new_lt7(zzz400000, zzz3300000) → new_esEs8(new_compare18(zzz400000, zzz3300000), LT)
new_esEs25(zzz4001, zzz3001, app(ty_[], bdh)) → new_esEs10(zzz4001, zzz3001, bdh)
new_esEs28(zzz4001, zzz3001, ty_Int) → new_esEs18(zzz4001, zzz3001)
new_pePe(False, zzz214) → zzz214
new_esEs19(zzz4000, zzz3000, app(ty_[], gf)) → new_esEs10(zzz4000, zzz3000, gf)
new_compare27(Just(zzz40000), Just(zzz330000), False, gb) → new_compare110(zzz40000, zzz330000, new_ltEs19(zzz40000, zzz330000, gb), gb)
new_esEs7(Left(zzz4000), Left(zzz3000), app(ty_[], cfe), cch) → new_esEs10(zzz4000, zzz3000, cfe)
new_esEs7(Left(zzz4000), Right(zzz3000), ccg, cch) → False
new_esEs7(Right(zzz4000), Left(zzz3000), ccg, cch) → False
new_esEs27(zzz4000, zzz3000, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_compare11(zzz400000, zzz3300000, app(ty_[], cdc)) → new_compare(zzz400000, zzz3300000, cdc)
new_lt20(zzz400000, zzz3300000, ty_Bool) → new_lt11(zzz400000, zzz3300000)
new_lt15(zzz4000, zzz33000, gb) → new_esEs8(new_compare13(zzz4000, zzz33000, gb), LT)
new_lt9(zzz4000, zzz33000) → new_esEs8(new_compare7(zzz4000, zzz33000), LT)
new_esEs20(zzz4001, zzz3001, ty_Double) → new_esEs16(zzz4001, zzz3001)
new_ltEs19(zzz40000, zzz330000, app(app(ty_@2, bfa), bfb)) → new_ltEs4(zzz40000, zzz330000, bfa, bfb)
new_lt4(zzz400000, zzz3300000, cf) → new_esEs8(new_compare(zzz400000, zzz3300000, cf), LT)
new_esEs11(zzz4000, zzz3000, ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_lt20(zzz400000, zzz3300000, ty_Float) → new_lt10(zzz400000, zzz3300000)
new_lt6(zzz400000, zzz3300000) → new_esEs8(new_compare8(zzz400000, zzz3300000), LT)
new_ltEs10(zzz40000, zzz330000, bec) → new_fsEs(new_compare(zzz40000, zzz330000, bec))
new_lt20(zzz400000, zzz3300000, app(app(ty_@2, bgc), bgd)) → new_lt17(zzz400000, zzz3300000, bgc, bgd)
new_esEs26(zzz400000, zzz3300000, ty_Bool) → new_esEs12(zzz400000, zzz3300000)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_ltEs6(GT, EQ) → False
new_esEs22(zzz400000, zzz3300000, ty_Ordering) → new_esEs8(zzz400000, zzz3300000)
new_esEs19(zzz4000, zzz3000, app(app(ty_Either, fg), fh)) → new_esEs7(zzz4000, zzz3000, fg, fh)
new_esEs21(zzz4002, zzz3002, ty_Int) → new_esEs18(zzz4002, zzz3002)
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Succ(zzz330000))) → new_primCmpNat0(zzz330000, zzz40000)
new_compare111(zzz400000, zzz3300000, False) → GT
new_esEs18(zzz400, zzz300) → new_primEqInt(zzz400, zzz300)
new_compare111(zzz400000, zzz3300000, True) → LT
new_intersectFM_C2Gts1(zzz256, zzz257, zzz258, zzz259, zzz260, bh, ca) → new_splitGT21(Nothing, zzz256, zzz257, zzz258, zzz259, zzz260, new_gt0(zzz260, Nothing, bh), bh, ca)
new_primPlusInt1(zzz15220, Pos(zzz4110)) → new_primMinusNat0(zzz4110, zzz15220)
new_addToFM_C20(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, bc, bd) → new_mkBalBranch(zzz3440, zzz3441, new_addToFM_C0(zzz3443, zzz330, zzz331, bc, bd), zzz3444, bc, bd)
new_primPlusInt2(Branch(zzz1520, zzz1521, Neg(zzz15220), zzz1523, zzz1524), zzz730, zzz731, zzz734, bc, bd) → new_primPlusInt1(zzz15220, new_sizeFM0(zzz734, bc, bd))
new_ltEs20(zzz400001, zzz3300001, app(app(ty_@2, bhe), bhf)) → new_ltEs4(zzz400001, zzz3300001, bhe, bhf)
new_primCmpNat0(Zero, Succ(zzz33000000)) → LT
new_esEs29(zzz400, Just(zzz3300), ty_Char) → new_esEs17(zzz400, zzz3300)
new_ltEs11(zzz40000, zzz330000, bed) → new_fsEs(new_compare5(zzz40000, zzz330000, bed))
new_esEs22(zzz400000, zzz3300000, ty_Float) → new_esEs15(zzz400000, zzz3300000)
new_addToFM(zzz344, zzz330, zzz331, bc, bd) → new_addToFM_C0(zzz344, zzz330, zzz331, bc, bd)
new_ltEs8(Nothing, Just(zzz3300000), bee) → True
new_mkBranch(zzz454, zzz455, zzz456, zzz457, zzz458, da, db) → Branch(zzz455, zzz456, new_primPlusInt(new_primPlusInt0(Succ(Zero), new_sizeFM1(zzz457, da, db)), zzz458, zzz455, zzz457, da, db), zzz457, zzz458)
new_ltEs20(zzz400001, zzz3300001, ty_Bool) → new_ltEs14(zzz400001, zzz3300001)
new_lt20(zzz400000, zzz3300000, ty_Ordering) → new_lt6(zzz400000, zzz3300000)
new_compare27(Nothing, Just(zzz330000), False, gb) → LT
new_esEs25(zzz4001, zzz3001, app(app(ty_@2, bea), beb)) → new_esEs6(zzz4001, zzz3001, bea, beb)
new_esEs8(LT, LT) → True
new_ltEs4(@2(zzz400000, zzz400001), @2(zzz3300000, zzz3300001), bfa, bfb) → new_pePe(new_lt20(zzz400000, zzz3300000, bfa), new_asAs(new_esEs26(zzz400000, zzz3300000, bfa), new_ltEs20(zzz400001, zzz3300001, bfb)))
new_compare25(zzz400000, zzz3300000, True, de, df, dg) → EQ
new_esEs19(zzz4000, zzz3000, app(ty_Maybe, gb)) → new_esEs4(zzz4000, zzz3000, gb)
new_esEs21(zzz4002, zzz3002, app(ty_Ratio, bae)) → new_esEs13(zzz4002, zzz3002, bae)
new_splitGT3(Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), bc, bd) → new_splitGT22(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, new_gt1(zzz3440, bc), bc, bd)
new_lt13(zzz400001, zzz3300001, ty_Int) → new_lt9(zzz400001, zzz3300001)
new_esEs19(zzz4000, zzz3000, ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_compare17(zzz400000, zzz3300000, caa, cab) → new_compare26(zzz400000, zzz3300000, new_esEs7(zzz400000, zzz3300000, caa, cab), caa, cab)
new_esEs25(zzz4001, zzz3001, ty_Ordering) → new_esEs8(zzz4001, zzz3001)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Int) → new_ltEs12(zzz400000, zzz3300000)
new_esEs24(zzz4000, zzz3000, app(app(ty_Either, bbg), bbh)) → new_esEs7(zzz4000, zzz3000, bbg, bbh)
new_esEs25(zzz4001, zzz3001, app(ty_Ratio, bdc)) → new_esEs13(zzz4001, zzz3001, bdc)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Double) → new_ltEs7(zzz400000, zzz3300000)
new_mkVBalBranch3MkVBalBranch20(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, bc, bd) → new_mkBalBranch(zzz3440, zzz3441, new_mkVBalBranch0(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz3443, bc, bd), zzz3444, bc, bd)
new_esEs7(Right(zzz4000), Right(zzz3000), ccg, ty_Float) → new_esEs15(zzz4000, zzz3000)
new_lt14(zzz400000, zzz3300000, ty_@0) → new_lt16(zzz400000, zzz3300000)
new_esEs24(zzz4000, zzz3000, app(app(ty_@2, bcg), bch)) → new_esEs6(zzz4000, zzz3000, bcg, bch)
new_mkVBalBranch0(zzz330, zzz331, EmptyFM, zzz344, bc, bd) → new_addToFM(zzz344, zzz330, zzz331, bc, bd)
new_esEs22(zzz400000, zzz3300000, ty_Int) → new_esEs18(zzz400000, zzz3300000)
new_pePe(True, zzz214) → True
new_primEqNat0(Zero, Zero) → True
new_splitGT22(zzz340, zzz341, zzz342, zzz343, zzz344, True, bc, bd) → new_splitGT3(zzz344, bc, bd)
new_esEs26(zzz400000, zzz3300000, ty_Char) → new_esEs17(zzz400000, zzz3300000)
new_esEs19(zzz4000, zzz3000, app(ty_Ratio, ga)) → new_esEs13(zzz4000, zzz3000, ga)
new_mkBalBranch6MkBalBranch11(zzz730, zzz731, zzz734, zzz1520, zzz1521, zzz1522, zzz1523, Branch(zzz15240, zzz15241, zzz15242, zzz15243, zzz15244), False, bc, bd) → new_mkBranch(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Zero))))))))), zzz15240, zzz15241, new_mkBranch(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Zero)))))))))), zzz1520, zzz1521, zzz1523, zzz15243, app(ty_Maybe, bc), bd), new_mkBranch(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Zero))))))))))), zzz730, zzz731, zzz15244, zzz734, app(ty_Maybe, bc), bd), app(ty_Maybe, bc), bd)
new_esEs14(@0, @0) → True
new_esEs23(zzz400001, zzz3300001, ty_Integer) → new_esEs9(zzz400001, zzz3300001)
new_esEs26(zzz400000, zzz3300000, app(ty_Ratio, bff)) → new_esEs13(zzz400000, zzz3300000, bff)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Bool) → new_ltEs14(zzz400000, zzz3300000)
new_ltEs19(zzz40000, zzz330000, ty_@0) → new_ltEs5(zzz40000, zzz330000)
new_primPlusInt1(zzz15220, Neg(zzz4110)) → Neg(new_primPlusNat1(zzz15220, zzz4110))
new_lt20(zzz400000, zzz3300000, ty_Integer) → new_lt7(zzz400000, zzz3300000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(ty_[], cac), bfd) → new_ltEs10(zzz400000, zzz3300000, cac)
new_esEs31(zzz400, zzz300, app(ty_[], dh)) → new_esEs10(zzz400, zzz300, dh)
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Ordering, cch) → new_esEs8(zzz4000, zzz3000)
new_lt13(zzz400001, zzz3300001, ty_Float) → new_lt10(zzz400001, zzz3300001)
new_compare(:(zzz400000, zzz400001), :(zzz3300000, zzz3300001), bec) → new_primCompAux1(zzz400000, zzz3300000, new_compare(zzz400001, zzz3300001, bec), bec)
new_ltEs19(zzz40000, zzz330000, ty_Ordering) → new_ltEs6(zzz40000, zzz330000)
new_sr(zzz4001, zzz3001) → new_primMulInt(zzz4001, zzz3001)
new_esEs4(Just(zzz4000), Just(zzz3000), app(ty_[], ddh)) → new_esEs10(zzz4000, zzz3000, ddh)
new_compare7(zzz400, zzz3300) → new_primCmpInt(zzz400, zzz3300)
new_esEs29(zzz400, Just(zzz3300), app(ty_Maybe, cdb)) → new_esEs4(zzz400, zzz3300, cdb)
new_esEs24(zzz4000, zzz3000, ty_Double) → new_esEs16(zzz4000, zzz3000)
new_compare12(Float(zzz400000, zzz400001), Float(zzz3300000, zzz3300001)) → new_compare7(new_sr(zzz400000, zzz3300000), new_sr(zzz400001, zzz3300001))
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(app(ty_Either, dab), dac)) → new_ltEs15(zzz400000, zzz3300000, dab, dac)
new_esEs26(zzz400000, zzz3300000, ty_Ordering) → new_esEs8(zzz400000, zzz3300000)
new_ltEs6(EQ, GT) → True
new_esEs8(GT, GT) → True
new_ltEs20(zzz400001, zzz3300001, app(ty_Ratio, bgh)) → new_ltEs11(zzz400001, zzz3300001, bgh)
new_esEs20(zzz4001, zzz3001, ty_Integer) → new_esEs9(zzz4001, zzz3001)
new_esEs21(zzz4002, zzz3002, ty_Double) → new_esEs16(zzz4002, zzz3002)
new_primPlusNat0(Succ(zzz2220), zzz300100) → Succ(Succ(new_primPlusNat1(zzz2220, zzz300100)))
new_ltEs18(zzz400002, zzz3300002, ty_Ordering) → new_ltEs6(zzz400002, zzz3300002)
new_esEs31(zzz400, zzz300, app(app(ty_Either, ccg), cch)) → new_esEs7(zzz400, zzz300, ccg, cch)
new_esEs11(zzz4000, zzz3000, ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_esEs7(Right(zzz4000), Right(zzz3000), ccg, app(app(ty_Either, cfh), cga)) → new_esEs7(zzz4000, zzz3000, cfh, cga)
new_esEs12(False, False) → True
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(ty_[], chb)) → new_ltEs10(zzz400000, zzz3300000, chb)
new_esEs8(GT, LT) → False
new_esEs8(LT, GT) → False
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_@0, bfd) → new_ltEs5(zzz400000, zzz3300000)
new_ltEs18(zzz400002, zzz3300002, ty_Double) → new_ltEs7(zzz400002, zzz3300002)
new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, bc, bd) → new_sizeFM(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, bc, bd)
new_primEqInt(Neg(Succ(zzz40000)), Neg(Succ(zzz30000))) → new_primEqNat0(zzz40000, zzz30000)
new_esEs7(Right(zzz4000), Right(zzz3000), ccg, ty_Char) → new_esEs17(zzz4000, zzz3000)
new_lt14(zzz400000, zzz3300000, app(ty_[], cf)) → new_lt4(zzz400000, zzz3300000, cf)
new_esEs20(zzz4001, zzz3001, ty_Ordering) → new_esEs8(zzz4001, zzz3001)
new_esEs23(zzz400001, zzz3300001, ty_Ordering) → new_esEs8(zzz400001, zzz3300001)
new_sizeFM1(Branch(zzz4570, zzz4571, zzz4572, zzz4573, zzz4574), da, db) → zzz4572
new_primPlusNat1(Succ(zzz22200), Zero) → Succ(zzz22200)
new_primPlusNat1(Zero, Succ(zzz3001000)) → Succ(zzz3001000)
new_compare27(Just(zzz40000), Nothing, False, gb) → GT
new_primCompAux1(zzz400000, zzz3300000, zzz215, bec) → new_primCompAux0(zzz215, new_compare11(zzz400000, zzz3300000, bec))
new_lt14(zzz400000, zzz3300000, app(ty_Ratio, cg)) → new_lt5(zzz400000, zzz3300000, cg)
new_ltEs15(Right(zzz400000), Right(zzz3300000), bfc, app(app(app(ty_@3, cbh), cca), ccb)) → new_ltEs13(zzz400000, zzz3300000, cbh, cca, ccb)
new_esEs7(Right(zzz4000), Right(zzz3000), ccg, app(ty_Ratio, cgb)) → new_esEs13(zzz4000, zzz3000, cgb)
new_compare27(Nothing, Nothing, False, gb) → LT
new_ltEs19(zzz40000, zzz330000, ty_Float) → new_ltEs9(zzz40000, zzz330000)
new_esEs25(zzz4001, zzz3001, ty_Int) → new_esEs18(zzz4001, zzz3001)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Char) → new_ltEs17(zzz400000, zzz3300000)
new_primEqInt(Neg(Zero), Neg(Zero)) → True
new_esEs7(Left(zzz4000), Left(zzz3000), app(ty_Ratio, ceh), cch) → new_esEs13(zzz4000, zzz3000, ceh)
new_splitLT11(zzz330, zzz331, zzz332, zzz333, zzz334, True, bc, bd) → new_mkVBalBranch0(zzz330, zzz331, zzz333, new_splitLT3(zzz334, bc, bd), bc, bd)
new_esEs7(Left(zzz4000), Left(zzz3000), app(app(ty_@2, cff), cfg), cch) → new_esEs6(zzz4000, zzz3000, cff, cfg)
new_ltEs15(Right(zzz400000), Right(zzz3300000), bfc, ty_Double) → new_ltEs7(zzz400000, zzz3300000)
new_mkBalBranch6MkBalBranch5(zzz730, zzz731, zzz734, zzz152, True, bc, bd) → new_mkBranch(Zero, zzz730, zzz731, zzz152, zzz734, app(ty_Maybe, bc), bd)
new_ltEs6(EQ, EQ) → True
new_esEs11(zzz4000, zzz3000, app(app(app(ty_@3, ee), ef), eg)) → new_esEs5(zzz4000, zzz3000, ee, ef, eg)
new_esEs29(zzz400, Just(zzz3300), app(app(ty_@2, bbe), bbf)) → new_esEs6(zzz400, zzz3300, bbe, bbf)
new_esEs11(zzz4000, zzz3000, ty_Float) → new_esEs15(zzz4000, zzz3000)
new_primEqInt(Neg(Succ(zzz40000)), Neg(Zero)) → False
new_primEqInt(Neg(Zero), Neg(Succ(zzz30000))) → False
new_primCompAux0(zzz220, GT) → GT
new_esEs8(EQ, EQ) → True
new_ltEs17(zzz40000, zzz330000) → new_fsEs(new_compare19(zzz40000, zzz330000))
new_primPlusInt0(zzz15220, Neg(zzz4100)) → new_primMinusNat0(zzz15220, zzz4100)
new_compare26(zzz400000, zzz3300000, True, caa, cab) → EQ
new_splitGT11(zzz2590, zzz2591, zzz2592, zzz2593, zzz2594, zzz260, True, bh, ca) → new_mkVBalBranch0(zzz2590, zzz2591, new_splitGT4(zzz2593, zzz260, bh, ca), zzz2594, bh, ca)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Bool, bfd) → new_ltEs14(zzz400000, zzz3300000)
new_ltEs6(GT, GT) → True
new_esEs24(zzz4000, zzz3000, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_compare24(zzz400000, zzz3300000, True, dc, dd) → EQ
new_ltEs13(@3(zzz400000, zzz400001, zzz400002), @3(zzz3300000, zzz3300001, zzz3300002), bef, beg, beh) → new_pePe(new_lt14(zzz400000, zzz3300000, bef), new_asAs(new_esEs22(zzz400000, zzz3300000, bef), new_pePe(new_lt13(zzz400001, zzz3300001, beg), new_asAs(new_esEs23(zzz400001, zzz3300001, beg), new_ltEs18(zzz400002, zzz3300002, beh)))))
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(ty_Maybe, cae), bfd) → new_ltEs8(zzz400000, zzz3300000, cae)
new_ltEs19(zzz40000, zzz330000, ty_Char) → new_ltEs17(zzz40000, zzz330000)
new_esEs22(zzz400000, zzz3300000, app(app(app(ty_@3, de), df), dg)) → new_esEs5(zzz400000, zzz3300000, de, df, dg)
new_compare([], [], bec) → EQ
new_compare11(zzz400000, zzz3300000, app(app(ty_@2, cea), ceb)) → new_compare16(zzz400000, zzz3300000, cea, ceb)
new_esEs26(zzz400000, zzz3300000, app(app(ty_Either, bge), bgf)) → new_esEs7(zzz400000, zzz3300000, bge, bgf)
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_esEs10(:(zzz4000, zzz4001), [], dh) → False
new_esEs10([], :(zzz3000, zzz3001), dh) → False
new_splitGT12(zzz340, zzz341, zzz342, zzz343, zzz344, False, bc, bd) → zzz344
new_ltEs19(zzz40000, zzz330000, ty_Double) → new_ltEs7(zzz40000, zzz330000)
new_primCmpNat0(Succ(zzz4000000), Succ(zzz33000000)) → new_primCmpNat0(zzz4000000, zzz33000000)
new_primMinusNat0(Succ(zzz152200), Zero) → Pos(Succ(zzz152200))
new_esEs4(Just(zzz4000), Just(zzz3000), app(app(ty_Either, dda), ddb)) → new_esEs7(zzz4000, zzz3000, dda, ddb)
new_esEs9(Integer(zzz4000), Integer(zzz3000)) → new_primEqInt(zzz4000, zzz3000)
new_esEs7(Right(zzz4000), Right(zzz3000), ccg, app(app(ty_@2, cgh), cha)) → new_esEs6(zzz4000, zzz3000, cgh, cha)
new_esEs22(zzz400000, zzz3300000, app(ty_Maybe, dad)) → new_esEs4(zzz400000, zzz3300000, dad)
new_esEs25(zzz4001, zzz3001, app(ty_Maybe, bdd)) → new_esEs4(zzz4001, zzz3001, bdd)
new_splitGT11(zzz2590, zzz2591, zzz2592, zzz2593, zzz2594, zzz260, False, bh, ca) → zzz2594
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Int) → new_esEs18(zzz4000, zzz3000)
new_esEs29(zzz400, Just(zzz3300), app(ty_[], dh)) → new_esEs10(zzz400, zzz3300, dh)
new_primEqInt(Pos(Succ(zzz40000)), Pos(Succ(zzz30000))) → new_primEqNat0(zzz40000, zzz30000)
new_compare10(zzz400000, zzz3300000, False, dc, dd) → GT
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(ty_Ratio, chc)) → new_ltEs11(zzz400000, zzz3300000, chc)
new_esEs6(@2(zzz4000, zzz4001), @2(zzz3000, zzz3001), bbe, bbf) → new_asAs(new_esEs24(zzz4000, zzz3000, bbe), new_esEs25(zzz4001, zzz3001, bbf))
new_compare11(zzz400000, zzz3300000, app(ty_Ratio, cdd)) → new_compare5(zzz400000, zzz3300000, cdd)
new_ltEs19(zzz40000, zzz330000, ty_Bool) → new_ltEs14(zzz40000, zzz330000)
new_splitLT3(Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), bc, bd) → new_splitLT22(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, new_lt15(Nothing, zzz3330, bc), bc, bd)
new_esEs23(zzz400001, zzz3300001, ty_Char) → new_esEs17(zzz400001, zzz3300001)
new_ltEs18(zzz400002, zzz3300002, app(app(ty_Either, dcg), dch)) → new_ltEs15(zzz400002, zzz3300002, dcg, dch)
new_mkBalBranch6MkBalBranch11(zzz730, zzz731, zzz734, zzz1520, zzz1521, zzz1522, zzz1523, zzz1524, True, bc, bd) → new_mkBranch(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Zero))))))), zzz1520, zzz1521, zzz1523, new_mkBranch(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Zero)))))))), zzz730, zzz731, zzz1524, zzz734, app(ty_Maybe, bc), bd), app(ty_Maybe, bc), bd)
new_esEs10([], [], dh) → True
new_splitLT12(zzz2580, zzz2581, zzz2582, zzz2583, zzz2584, zzz260, True, bh, ca) → new_mkVBalBranch0(zzz2580, zzz2581, zzz2583, new_splitLT4(zzz2584, zzz260, bh, ca), bh, ca)
new_esEs24(zzz4000, zzz3000, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_lt14(zzz400000, zzz3300000, ty_Double) → new_lt19(zzz400000, zzz3300000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Int, bfd) → new_ltEs12(zzz400000, zzz3300000)
new_splitLT22(zzz330, zzz331, zzz332, zzz333, zzz334, False, bc, bd) → new_splitLT11(zzz330, zzz331, zzz332, zzz333, zzz334, new_gt1(zzz330, bc), bc, bd)
new_primEqNat0(Succ(zzz40000), Succ(zzz30000)) → new_primEqNat0(zzz40000, zzz30000)
new_ltEs14(False, False) → True
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Integer, cch) → new_esEs9(zzz4000, zzz3000)
new_esEs19(zzz4000, zzz3000, app(app(ty_@2, gg), gh)) → new_esEs6(zzz4000, zzz3000, gg, gh)
new_esEs29(zzz400, Nothing, bc) → False
new_esEs4(Just(zzz4000), Just(zzz3000), app(app(app(ty_@3, dde), ddf), ddg)) → new_esEs5(zzz4000, zzz3000, dde, ddf, ddg)
new_compare6(Double(zzz400000, zzz400001), Double(zzz3300000, zzz3300001)) → new_compare7(new_sr(zzz400000, zzz3300000), new_sr(zzz400001, zzz3300001))
new_esEs22(zzz400000, zzz3300000, ty_Bool) → new_esEs12(zzz400000, zzz3300000)
new_splitGT4(EmptyFM, zzz260, bh, ca) → new_emptyFM(bh, ca)
new_lt11(zzz400000, zzz3300000) → new_esEs8(new_compare15(zzz400000, zzz3300000), LT)
new_compare114(zzz400000, zzz3300000, True, caa, cab) → LT
new_esEs20(zzz4001, zzz3001, ty_Float) → new_esEs15(zzz4001, zzz3001)
new_esEs24(zzz4000, zzz3000, ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_ltEs8(Just(zzz400000), Nothing, bee) → False
new_compare31(zzz330, bc) → new_compare27(Nothing, zzz330, new_esEs30(zzz330, bc), bc)
new_compare5(:%(zzz400000, zzz400001), :%(zzz3300000, zzz3300001), ty_Integer) → new_compare18(new_sr0(zzz400000, zzz3300001), new_sr0(zzz3300000, zzz400001))
new_esEs11(zzz4000, zzz3000, app(ty_Maybe, ed)) → new_esEs4(zzz4000, zzz3000, ed)
new_compare24(zzz400000, zzz3300000, False, dc, dd) → new_compare10(zzz400000, zzz3300000, new_ltEs4(zzz400000, zzz3300000, dc, dd), dc, dd)
new_sizeFM(zzz730, zzz731, zzz732, zzz733, zzz734, bc, bd) → zzz732
new_compare19(Char(zzz400000), Char(zzz3300000)) → new_primCmpNat0(zzz400000, zzz3300000)
new_esEs8(EQ, LT) → False
new_esEs8(LT, EQ) → False
new_lt20(zzz400000, zzz3300000, app(ty_Ratio, bff)) → new_lt5(zzz400000, zzz3300000, bff)
new_primEqInt(Pos(Succ(zzz40000)), Pos(Zero)) → False
new_primEqInt(Pos(Zero), Pos(Succ(zzz30000))) → False
new_mkBalBranch6MkBalBranch01(zzz730, zzz731, zzz7340, zzz7341, zzz7342, Branch(zzz73430, zzz73431, zzz73432, zzz73433, zzz73434), zzz7344, zzz152, False, bc, bd) → new_mkBranch(Succ(Succ(Succ(Succ(Zero)))), zzz73430, zzz73431, new_mkBranch(Succ(Succ(Succ(Succ(Succ(Zero))))), zzz730, zzz731, zzz152, zzz73433, app(ty_Maybe, bc), bd), new_mkBranch(Succ(Succ(Succ(Succ(Succ(Succ(Zero)))))), zzz7340, zzz7341, zzz73434, zzz7344, app(ty_Maybe, bc), bd), app(ty_Maybe, bc), bd)
new_esEs24(zzz4000, zzz3000, ty_Float) → new_esEs15(zzz4000, zzz3000)
new_primCmpNat0(Zero, Zero) → EQ
new_lt14(zzz400000, zzz3300000, app(app(app(ty_@3, de), df), dg)) → new_lt8(zzz400000, zzz3300000, de, df, dg)
new_primCmpNat0(Succ(zzz4000000), Zero) → GT
new_esEs19(zzz4000, zzz3000, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_compare11(zzz400000, zzz3300000, ty_Char) → new_compare19(zzz400000, zzz3300000)
new_esEs29(zzz400, Just(zzz3300), ty_Double) → new_esEs16(zzz400, zzz3300)
new_lt12(zzz400000, zzz3300000) → new_esEs8(new_compare19(zzz400000, zzz3300000), LT)
new_primCmpInt(Neg(Zero), Pos(Succ(zzz330000))) → LT
new_esEs29(zzz400, Just(zzz3300), ty_Bool) → new_esEs12(zzz400, zzz3300)
new_compare9(@0, @0) → EQ
new_esEs21(zzz4002, zzz3002, ty_Float) → new_esEs15(zzz4002, zzz3002)
new_esEs22(zzz400000, zzz3300000, app(ty_Ratio, cg)) → new_esEs13(zzz400000, zzz3300000, cg)
new_esEs27(zzz4000, zzz3000, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_sr0(Integer(zzz33000000), Integer(zzz4000010)) → Integer(new_primMulInt(zzz33000000, zzz4000010))
new_primPlusNat1(Succ(zzz22200), Succ(zzz3001000)) → Succ(Succ(new_primPlusNat1(zzz22200, zzz3001000)))
new_primEqInt(Pos(Succ(zzz40000)), Neg(zzz3000)) → False
new_primEqInt(Neg(Succ(zzz40000)), Pos(zzz3000)) → False
new_esEs24(zzz4000, zzz3000, app(ty_Ratio, bca)) → new_esEs13(zzz4000, zzz3000, bca)
new_esEs4(Just(zzz4000), Just(zzz3000), app(app(ty_@2, dea), deb)) → new_esEs6(zzz4000, zzz3000, dea, deb)
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Float, cch) → new_esEs15(zzz4000, zzz3000)
new_gt1(zzz330, bc) → new_esEs8(new_compare31(zzz330, bc), GT)
new_mkBalBranch6MkBalBranch3(zzz730, zzz731, zzz734, EmptyFM, True, bc, bd) → error([])
new_compare18(Integer(zzz400000), Integer(zzz3300000)) → new_primCmpInt(zzz400000, zzz3300000)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Ordering) → new_ltEs6(zzz400000, zzz3300000)
new_esEs22(zzz400000, zzz3300000, app(app(ty_@2, dc), dd)) → new_esEs6(zzz400000, zzz3300000, dc, dd)
new_primCmpInt(Neg(Succ(zzz40000)), Neg(Zero)) → LT
new_primEqInt(Pos(Zero), Neg(Succ(zzz30000))) → False
new_primEqInt(Neg(Zero), Pos(Succ(zzz30000))) → False
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Float) → new_ltEs9(zzz400000, zzz3300000)
new_lt8(zzz400000, zzz3300000, de, df, dg) → new_esEs8(new_compare14(zzz400000, zzz3300000, de, df, dg), LT)
new_primCmpInt(Pos(Zero), Pos(Succ(zzz330000))) → new_primCmpNat0(Zero, Succ(zzz330000))
new_esEs7(Right(zzz4000), Right(zzz3000), ccg, app(ty_Maybe, cgc)) → new_esEs4(zzz4000, zzz3000, cgc)
new_ltEs18(zzz400002, zzz3300002, app(ty_Ratio, dbh)) → new_ltEs11(zzz400002, zzz3300002, dbh)
new_ltEs15(Right(zzz400000), Right(zzz3300000), bfc, ty_Char) → new_ltEs17(zzz400000, zzz3300000)
new_esEs25(zzz4001, zzz3001, ty_@0) → new_esEs14(zzz4001, zzz3001)
new_compare11(zzz400000, zzz3300000, app(app(app(ty_@3, cdf), cdg), cdh)) → new_compare14(zzz400000, zzz3300000, cdf, cdg, cdh)
new_esEs23(zzz400001, zzz3300001, ty_Int) → new_esEs18(zzz400001, zzz3300001)
new_ltEs5(zzz40000, zzz330000) → new_fsEs(new_compare9(zzz40000, zzz330000))
new_esEs8(GT, EQ) → False
new_esEs8(EQ, GT) → False
new_esEs25(zzz4001, zzz3001, ty_Float) → new_esEs15(zzz4001, zzz3001)
new_splitLT21(zzz2580, zzz2581, zzz2582, zzz2583, zzz2584, zzz260, True, bh, ca) → new_splitLT4(zzz2583, zzz260, bh, ca)
new_compare13(zzz4000, zzz33000, gb) → new_compare27(zzz4000, zzz33000, new_esEs4(zzz4000, zzz33000, gb), gb)
new_esEs16(Double(zzz4000, zzz4001), Double(zzz3000, zzz3001)) → new_esEs18(new_sr(zzz4000, zzz3000), new_sr(zzz4001, zzz3001))
new_emptyFM(bc, bd) → EmptyFM
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Float) → new_esEs15(zzz4000, zzz3000)
new_ltEs19(zzz40000, zzz330000, app(app(app(ty_@3, bef), beg), beh)) → new_ltEs13(zzz40000, zzz330000, bef, beg, beh)
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_lt20(zzz400000, zzz3300000, ty_@0) → new_lt16(zzz400000, zzz3300000)
new_esEs10(:(zzz4000, zzz4001), :(zzz3000, zzz3001), dh) → new_asAs(new_esEs11(zzz4000, zzz3000, dh), new_esEs10(zzz4001, zzz3001, dh))
new_primCompAux0(zzz220, LT) → LT
new_esEs7(Right(zzz4000), Right(zzz3000), ccg, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_@0) → new_ltEs5(zzz400000, zzz3300000)
new_lt13(zzz400001, zzz3300001, ty_Bool) → new_lt11(zzz400001, zzz3300001)
new_mkBalBranch6MkBalBranch4(zzz730, zzz731, zzz734, zzz152, False, bc, bd) → new_mkBalBranch6MkBalBranch3(zzz730, zzz731, zzz734, zzz152, new_gt2(new_mkBalBranch6Size_l(zzz730, zzz731, zzz734, zzz152, bc, bd), new_sr(new_sIZE_RATIO, new_mkBalBranch6Size_r(zzz730, zzz731, zzz734, zzz152, bc, bd))), bc, bd)
new_compare16(zzz400000, zzz3300000, dc, dd) → new_compare24(zzz400000, zzz3300000, new_esEs6(zzz400000, zzz3300000, dc, dd), dc, dd)
new_compare11(zzz400000, zzz3300000, ty_Double) → new_compare6(zzz400000, zzz3300000)
new_compare113(zzz400000, zzz3300000, True) → LT
new_compare114(zzz400000, zzz3300000, False, caa, cab) → GT
new_not(False) → True
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Int, cch) → new_esEs18(zzz4000, zzz3000)
new_splitGT4(Branch(zzz25940, zzz25941, zzz25942, zzz25943, zzz25944), zzz260, bh, ca) → new_splitGT21(zzz25940, zzz25941, zzz25942, zzz25943, zzz25944, zzz260, new_gt(Just(zzz260), zzz25940, bh), bh, ca)
new_compare110(zzz195, zzz196, True, cee) → LT
new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, bc, bd) → new_sizeFM(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, bc, bd)
new_primPlusNat0(Zero, zzz300100) → Succ(zzz300100)
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Double, cch) → new_esEs16(zzz4000, zzz3000)
new_lt16(zzz400000, zzz3300000) → new_esEs8(new_compare9(zzz400000, zzz3300000), LT)
new_intersectFM_C2Gts2(zzz273, zzz274, zzz275, zzz276, zzz277, zzz278, cc, cd) → new_splitGT21(Just(zzz273), zzz274, zzz275, zzz276, zzz277, zzz278, new_gt0(zzz278, Just(zzz273), cc), cc, cd)
new_ltEs19(zzz40000, zzz330000, app(ty_[], bec)) → new_ltEs10(zzz40000, zzz330000, bec)
new_lt13(zzz400001, zzz3300001, ty_Integer) → new_lt7(zzz400001, zzz3300001)
new_esEs23(zzz400001, zzz3300001, app(app(ty_@2, dbc), dbd)) → new_esEs6(zzz400001, zzz3300001, dbc, dbd)
new_esEs19(zzz4000, zzz3000, ty_Char) → new_esEs17(zzz4000, zzz3000)
new_compare113(zzz400000, zzz3300000, False) → GT
new_esEs7(Right(zzz4000), Right(zzz3000), ccg, ty_@0) → new_esEs14(zzz4000, zzz3000)
new_addToFM_C0(Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), zzz330, zzz331, bc, bd) → new_addToFM_C20(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_lt15(zzz330, zzz3440, bc), bc, bd)
new_splitGT3(EmptyFM, bc, bd) → new_emptyFM(bc, bd)
new_esEs26(zzz400000, zzz3300000, ty_Int) → new_esEs18(zzz400000, zzz3300000)
new_esEs31(zzz400, zzz300, ty_Integer) → new_esEs9(zzz400, zzz300)
new_esEs11(zzz4000, zzz3000, ty_Double) → new_esEs16(zzz4000, zzz3000)
new_primPlusInt2(Branch(zzz1520, zzz1521, Pos(zzz15220), zzz1523, zzz1524), zzz730, zzz731, zzz734, bc, bd) → new_primPlusInt0(zzz15220, new_sizeFM0(zzz734, bc, bd))
new_esEs11(zzz4000, zzz3000, ty_@0) → new_esEs14(zzz4000, zzz3000)
new_esEs23(zzz400001, zzz3300001, app(ty_[], dae)) → new_esEs10(zzz400001, zzz3300001, dae)
new_lt13(zzz400001, zzz3300001, app(ty_Ratio, daf)) → new_lt5(zzz400001, zzz3300001, daf)
new_mkBalBranch6MkBalBranch3(zzz730, zzz731, zzz734, zzz152, False, bc, bd) → new_mkBranch(Succ(Zero), zzz730, zzz731, zzz152, zzz734, app(ty_Maybe, bc), bd)
new_ltEs19(zzz40000, zzz330000, app(app(ty_Either, bfc), bfd)) → new_ltEs15(zzz40000, zzz330000, bfc, bfd)
new_esEs19(zzz4000, zzz3000, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_compare28(zzz400000, zzz3300000, True) → EQ
new_lt13(zzz400001, zzz3300001, app(app(ty_@2, dbc), dbd)) → new_lt17(zzz400001, zzz3300001, dbc, dbd)
new_esEs20(zzz4001, zzz3001, ty_Int) → new_esEs18(zzz4001, zzz3001)
new_esEs20(zzz4001, zzz3001, app(app(app(ty_@3, he), hf), hg)) → new_esEs5(zzz4001, zzz3001, he, hf, hg)
new_primCmpInt(Pos(Succ(zzz40000)), Neg(zzz33000)) → GT
new_esEs21(zzz4002, zzz3002, app(app(app(ty_@3, bag), bah), bba)) → new_esEs5(zzz4002, zzz3002, bag, bah, bba)
new_lt14(zzz400000, zzz3300000, ty_Int) → new_lt9(zzz400000, zzz3300000)
new_intersectFM_C2Gts0(zzz241, zzz242, zzz243, zzz244, zzz245, be, bf) → new_splitGT22(Just(zzz241), zzz242, zzz243, zzz244, zzz245, new_gt1(Just(zzz241), be), be, bf)
new_esEs7(Right(zzz4000), Right(zzz3000), ccg, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_mkBalBranch(zzz730, zzz731, zzz152, zzz734, bc, bd) → new_mkBalBranch6MkBalBranch5(zzz730, zzz731, zzz734, zzz152, new_lt9(new_primPlusInt2(zzz152, zzz730, zzz731, zzz734, bc, bd), Pos(Succ(Succ(Zero)))), bc, bd)
new_primMulInt(Pos(zzz40010), Pos(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_esEs5(@3(zzz4000, zzz4001, zzz4002), @3(zzz3000, zzz3001, zzz3002), fc, fd, ff) → new_asAs(new_esEs19(zzz4000, zzz3000, fc), new_asAs(new_esEs20(zzz4001, zzz3001, fd), new_esEs21(zzz4002, zzz3002, ff)))
new_ltEs18(zzz400002, zzz3300002, ty_Float) → new_ltEs9(zzz400002, zzz3300002)
new_mkVBalBranch3MkVBalBranch20(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, bc, bd) → new_mkVBalBranch3MkVBalBranch10(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, new_lt9(new_sr(new_sIZE_RATIO, new_mkVBalBranch3Size_r(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, bc, bd)), new_mkVBalBranch3Size_l(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, bc, bd)), bc, bd)
new_esEs7(Left(zzz4000), Left(zzz3000), ty_@0, cch) → new_esEs14(zzz4000, zzz3000)
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(app(app(ty_@3, caf), cag), cah), bfd) → new_ltEs13(zzz400000, zzz3300000, caf, cag, cah)
new_primMulInt(Neg(zzz40010), Neg(zzz30010)) → Pos(new_primMulNat0(zzz40010, zzz30010))
new_ltEs19(zzz40000, zzz330000, app(ty_Maybe, bee)) → new_ltEs8(zzz40000, zzz330000, bee)
new_primEqNat0(Succ(zzz40000), Zero) → False
new_primEqNat0(Zero, Succ(zzz30000)) → False
new_ltEs19(zzz40000, zzz330000, ty_Int) → new_ltEs12(zzz40000, zzz330000)
new_lt20(zzz400000, zzz3300000, app(app(ty_Either, bge), bgf)) → new_lt18(zzz400000, zzz3300000, bge, bgf)
new_ltEs6(LT, LT) → True
new_mkVBalBranch0(zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), EmptyFM, bc, bd) → new_addToFM(Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), zzz330, zzz331, bc, bd)
new_ltEs6(EQ, LT) → False
new_esEs20(zzz4001, zzz3001, app(ty_[], hh)) → new_esEs10(zzz4001, zzz3001, hh)
new_ltEs14(True, True) → True
new_primEqInt(Pos(Zero), Pos(Zero)) → True
new_ltEs12(zzz40000, zzz330000) → new_fsEs(new_compare7(zzz40000, zzz330000))
new_esEs4(Nothing, Nothing, cdb) → True
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Char, cch) → new_esEs17(zzz4000, zzz3000)
new_esEs4(Just(zzz4000), Just(zzz3000), app(ty_Ratio, ddc)) → new_esEs13(zzz4000, zzz3000, ddc)
new_esEs11(zzz4000, zzz3000, ty_Int) → new_esEs18(zzz4000, zzz3000)
new_lt14(zzz400000, zzz3300000, ty_Bool) → new_lt11(zzz400000, zzz3300000)
new_mkVBalBranch3MkVBalBranch10(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, bc, bd) → new_mkBranch(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Zero)))))))))))), zzz330, zzz331, Branch(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334), Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), app(ty_Maybe, bc), bd)
new_mkBalBranch6MkBalBranch5(zzz730, zzz731, zzz734, zzz152, False, bc, bd) → new_mkBalBranch6MkBalBranch4(zzz730, zzz731, zzz734, zzz152, new_gt2(new_mkBalBranch6Size_r(zzz730, zzz731, zzz734, zzz152, bc, bd), new_sr(new_sIZE_RATIO, new_mkBalBranch6Size_l(zzz730, zzz731, zzz734, zzz152, bc, bd))), bc, bd)
new_sizeFM0(EmptyFM, bc, bd) → Pos(Zero)
new_lt18(zzz400000, zzz3300000, caa, cab) → new_esEs8(new_compare17(zzz400000, zzz3300000, caa, cab), LT)
new_esEs21(zzz4002, zzz3002, app(app(ty_Either, bac), bad)) → new_esEs7(zzz4002, zzz3002, bac, bad)
new_ltEs18(zzz400002, zzz3300002, app(app(app(ty_@3, dcb), dcc), dcd)) → new_ltEs13(zzz400002, zzz3300002, dcb, dcc, dcd)
new_lt13(zzz400001, zzz3300001, app(ty_Maybe, dag)) → new_lt15(zzz400001, zzz3300001, dag)
new_lt13(zzz400001, zzz3300001, ty_Double) → new_lt19(zzz400001, zzz3300001)
new_ltEs20(zzz400001, zzz3300001, ty_@0) → new_ltEs5(zzz400001, zzz3300001)
new_compare112(zzz400000, zzz3300000, True, de, df, dg) → LT
new_primMinusNat0(Zero, Zero) → Pos(Zero)
new_esEs21(zzz4002, zzz3002, ty_Char) → new_esEs17(zzz4002, zzz3002)
new_lt10(zzz400000, zzz3300000) → new_esEs8(new_compare12(zzz400000, zzz3300000), LT)
new_primCmpInt(Neg(Zero), Neg(Succ(zzz330000))) → new_primCmpNat0(Succ(zzz330000), Zero)
new_primCmpInt(Pos(Zero), Neg(Succ(zzz330000))) → GT
new_compare110(zzz195, zzz196, False, cee) → GT
new_ltEs20(zzz400001, zzz3300001, ty_Int) → new_ltEs12(zzz400001, zzz3300001)
new_lt14(zzz400000, zzz3300000, app(app(ty_@2, dc), dd)) → new_lt17(zzz400000, zzz3300000, dc, dd)
new_sIZE_RATIOPos(Succ(Succ(Succ(Succ(Succ(Zero))))))
new_ltEs20(zzz400001, zzz3300001, app(app(app(ty_@3, bhb), bhc), bhd)) → new_ltEs13(zzz400001, zzz3300001, bhb, bhc, bhd)
new_splitGT12(zzz340, zzz341, zzz342, zzz343, zzz344, True, bc, bd) → new_mkVBalBranch0(zzz340, zzz341, new_splitGT3(zzz343, bc, bd), zzz344, bc, bd)
new_esEs26(zzz400000, zzz3300000, ty_@0) → new_esEs14(zzz400000, zzz3300000)
new_mkBalBranch6MkBalBranch4(zzz730, zzz731, EmptyFM, zzz152, True, bc, bd) → error([])
new_esEs11(zzz4000, zzz3000, app(app(ty_Either, ea), eb)) → new_esEs7(zzz4000, zzz3000, ea, eb)
new_ltEs18(zzz400002, zzz3300002, app(ty_[], dbg)) → new_ltEs10(zzz400002, zzz3300002, dbg)
new_lt14(zzz400000, zzz3300000, app(ty_Maybe, dad)) → new_lt15(zzz400000, zzz3300000, dad)
new_esEs24(zzz4000, zzz3000, app(ty_[], bcf)) → new_esEs10(zzz4000, zzz3000, bcf)
new_esEs21(zzz4002, zzz3002, app(ty_Maybe, baf)) → new_esEs4(zzz4002, zzz3002, baf)
new_compare11(zzz400000, zzz3300000, ty_@0) → new_compare9(zzz400000, zzz3300000)
new_esEs20(zzz4001, zzz3001, app(app(ty_Either, ha), hb)) → new_esEs7(zzz4001, zzz3001, ha, hb)
new_ltEs20(zzz400001, zzz3300001, app(app(ty_Either, bhg), bhh)) → new_ltEs15(zzz400001, zzz3300001, bhg, bhh)
new_esEs11(zzz4000, zzz3000, app(app(ty_@2, fa), fb)) → new_esEs6(zzz4000, zzz3000, fa, fb)
new_esEs23(zzz400001, zzz3300001, ty_@0) → new_esEs14(zzz400001, zzz3300001)
new_esEs28(zzz4001, zzz3001, ty_Integer) → new_esEs9(zzz4001, zzz3001)
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs25(zzz4001, zzz3001, ty_Bool) → new_esEs12(zzz4001, zzz3001)
new_esEs21(zzz4002, zzz3002, ty_@0) → new_esEs14(zzz4002, zzz3002)
new_ltEs15(Right(zzz400000), Right(zzz3300000), bfc, app(ty_[], cbe)) → new_ltEs10(zzz400000, zzz3300000, cbe)
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(ty_Maybe, chd)) → new_ltEs8(zzz400000, zzz3300000, chd)
new_esEs19(zzz4000, zzz3000, ty_Double) → new_esEs16(zzz4000, zzz3000)
new_esEs29(zzz400, Just(zzz3300), app(app(app(ty_@3, fc), fd), ff)) → new_esEs5(zzz400, zzz3300, fc, fd, ff)
new_esEs13(:%(zzz4000, zzz4001), :%(zzz3000, zzz3001), cda) → new_asAs(new_esEs27(zzz4000, zzz3000, cda), new_esEs28(zzz4001, zzz3001, cda))
new_asAs(False, zzz202) → False
new_lt14(zzz400000, zzz3300000, ty_Float) → new_lt10(zzz400000, zzz3300000)
new_esEs29(zzz400, Just(zzz3300), ty_Float) → new_esEs15(zzz400, zzz3300)
new_lt20(zzz400000, zzz3300000, ty_Double) → new_lt19(zzz400000, zzz3300000)
new_primMulInt(Pos(zzz40010), Neg(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_primMulInt(Neg(zzz40010), Pos(zzz30010)) → Neg(new_primMulNat0(zzz40010, zzz30010))
new_sizeFM1(EmptyFM, da, db) → Pos(Zero)
new_primMulNat0(Zero, Succ(zzz300100)) → Zero
new_primMulNat0(Succ(zzz400100), Zero) → Zero
new_ltEs15(Right(zzz400000), Right(zzz3300000), bfc, ty_Ordering) → new_ltEs6(zzz400000, zzz3300000)
new_compare14(zzz400000, zzz3300000, de, df, dg) → new_compare25(zzz400000, zzz3300000, new_esEs5(zzz400000, zzz3300000, de, df, dg), de, df, dg)
new_esEs21(zzz4002, zzz3002, ty_Ordering) → new_esEs8(zzz4002, zzz3002)
new_splitGT21(zzz2590, zzz2591, zzz2592, zzz2593, zzz2594, zzz260, False, bh, ca) → new_splitGT11(zzz2590, zzz2591, zzz2592, zzz2593, zzz2594, zzz260, new_lt15(Just(zzz260), zzz2590, bh), bh, ca)
new_compare11(zzz400000, zzz3300000, ty_Bool) → new_compare15(zzz400000, zzz3300000)
new_ltEs8(Just(zzz400000), Just(zzz3300000), app(app(ty_@2, chh), daa)) → new_ltEs4(zzz400000, zzz3300000, chh, daa)
new_esEs31(zzz400, zzz300, ty_Double) → new_esEs16(zzz400, zzz300)
new_esEs22(zzz400000, zzz3300000, app(ty_[], cf)) → new_esEs10(zzz400000, zzz3300000, cf)
new_ltEs16(zzz40000, zzz330000) → new_fsEs(new_compare18(zzz40000, zzz330000))
new_esEs29(zzz400, Just(zzz3300), app(app(ty_Either, ccg), cch)) → new_esEs7(zzz400, zzz3300, ccg, cch)
new_lt20(zzz400000, zzz3300000, app(ty_[], bfe)) → new_lt4(zzz400000, zzz3300000, bfe)
new_lt19(zzz400000, zzz3300000) → new_esEs8(new_compare6(zzz400000, zzz3300000), LT)
new_esEs23(zzz400001, zzz3300001, ty_Float) → new_esEs15(zzz400001, zzz3300001)
new_ltEs18(zzz400002, zzz3300002, ty_Bool) → new_ltEs14(zzz400002, zzz3300002)
new_mkBalBranch6MkBalBranch4(zzz730, zzz731, Branch(zzz7340, zzz7341, zzz7342, zzz7343, zzz7344), zzz152, True, bc, bd) → new_mkBalBranch6MkBalBranch01(zzz730, zzz731, zzz7340, zzz7341, zzz7342, zzz7343, zzz7344, zzz152, new_lt9(new_sizeFM0(zzz7343, bc, bd), new_sr(Pos(Succ(Succ(Zero))), new_sizeFM0(zzz7344, bc, bd))), bc, bd)
new_splitLT11(zzz330, zzz331, zzz332, zzz333, zzz334, False, bc, bd) → zzz333
new_esEs21(zzz4002, zzz3002, ty_Integer) → new_esEs9(zzz4002, zzz3002)
new_splitGT21(zzz2590, zzz2591, zzz2592, zzz2593, zzz2594, zzz260, True, bh, ca) → new_splitGT4(zzz2594, zzz260, bh, ca)
new_compare11(zzz400000, zzz3300000, app(app(ty_Either, cec), ced)) → new_compare17(zzz400000, zzz3300000, cec, ced)
new_compare25(zzz400000, zzz3300000, False, de, df, dg) → new_compare112(zzz400000, zzz3300000, new_ltEs13(zzz400000, zzz3300000, de, df, dg), de, df, dg)
new_esEs26(zzz400000, zzz3300000, ty_Integer) → new_esEs9(zzz400000, zzz3300000)
new_mkBalBranch6MkBalBranch01(zzz730, zzz731, zzz7340, zzz7341, zzz7342, EmptyFM, zzz7344, zzz152, False, bc, bd) → error([])
new_esEs24(zzz4000, zzz3000, ty_Bool) → new_esEs12(zzz4000, zzz3000)
new_esEs23(zzz400001, zzz3300001, ty_Double) → new_esEs16(zzz400001, zzz3300001)
new_compare11(zzz400000, zzz3300000, ty_Ordering) → new_compare8(zzz400000, zzz3300000)
new_ltEs6(LT, GT) → True
new_lt13(zzz400001, zzz3300001, ty_Ordering) → new_lt6(zzz400001, zzz3300001)
new_intersectFM_C2Lts(zzz354, zzz355, zzz356, zzz357, h, ba) → new_splitLT3(Branch(Nothing, zzz354, zzz355, zzz356, zzz357), h, ba)
new_compare112(zzz400000, zzz3300000, False, de, df, dg) → GT
new_esEs4(Just(zzz4000), Just(zzz3000), ty_Double) → new_esEs16(zzz4000, zzz3000)
new_ltEs15(Right(zzz400000), Right(zzz3300000), bfc, ty_Int) → new_ltEs12(zzz400000, zzz3300000)
new_esEs12(False, True) → False
new_esEs12(True, False) → False
new_esEs7(Left(zzz4000), Left(zzz3000), ty_Bool, cch) → new_esEs12(zzz4000, zzz3000)
new_esEs11(zzz4000, zzz3000, app(ty_Ratio, ec)) → new_esEs13(zzz4000, zzz3000, ec)
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(ty_Ratio, cad), bfd) → new_ltEs11(zzz400000, zzz3300000, cad)
new_esEs30(Just(zzz3300), bc) → False
new_primMinusNat0(Zero, Succ(zzz41000)) → Neg(Succ(zzz41000))
new_mkBalBranch6MkBalBranch01(zzz730, zzz731, zzz7340, zzz7341, zzz7342, zzz7343, zzz7344, zzz152, True, bc, bd) → new_mkBranch(Succ(Succ(Zero)), zzz7340, zzz7341, new_mkBranch(Succ(Succ(Succ(Zero))), zzz730, zzz731, zzz152, zzz7343, app(ty_Maybe, bc), bd), zzz7344, app(ty_Maybe, bc), bd)
new_compare11(zzz400000, zzz3300000, ty_Float) → new_compare12(zzz400000, zzz3300000)
new_esEs11(zzz4000, zzz3000, ty_Integer) → new_esEs9(zzz4000, zzz3000)
new_ltEs18(zzz400002, zzz3300002, app(ty_Maybe, dca)) → new_ltEs8(zzz400002, zzz3300002, dca)
new_gt0(zzz400, zzz330, bc) → new_esEs8(new_compare30(zzz400, zzz330, bc), GT)
new_ltEs14(True, False) → False
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Zero)) → GT
new_primCmpInt(Pos(Succ(zzz40000)), Pos(Succ(zzz330000))) → new_primCmpNat0(zzz40000, zzz330000)
new_ltEs8(Nothing, Nothing, bee) → True
new_esEs31(zzz400, zzz300, app(ty_Maybe, cdb)) → new_esEs4(zzz400, zzz300, cdb)
new_intersectFM_C2Lts0(zzz241, zzz242, zzz243, zzz244, zzz245, be, bf) → new_splitLT22(Just(zzz241), zzz242, zzz243, zzz244, zzz245, new_lt15(Nothing, Just(zzz241), be), be, bf)
new_esEs22(zzz400000, zzz3300000, ty_@0) → new_esEs14(zzz400000, zzz3300000)
new_esEs25(zzz4001, zzz3001, app(app(app(ty_@3, bde), bdf), bdg)) → new_esEs5(zzz4001, zzz3001, bde, bdf, bdg)
new_esEs15(Float(zzz4000, zzz4001), Float(zzz3000, zzz3001)) → new_esEs18(new_sr(zzz4000, zzz3000), new_sr(zzz4001, zzz3001))
new_lt20(zzz400000, zzz3300000, ty_Char) → new_lt12(zzz400000, zzz3300000)
new_ltEs15(Right(zzz400000), Right(zzz3300000), bfc, app(app(ty_Either, cce), ccf)) → new_ltEs15(zzz400000, zzz3300000, cce, ccf)
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Integer, bfd) → new_ltEs16(zzz400000, zzz3300000)
new_compare27(zzz4000, zzz33000, True, gb) → EQ
new_ltEs15(Right(zzz400000), Right(zzz3300000), bfc, ty_Bool) → new_ltEs14(zzz400000, zzz3300000)
new_mkBalBranch6MkBalBranch11(zzz730, zzz731, zzz734, zzz1520, zzz1521, zzz1522, zzz1523, EmptyFM, False, bc, bd) → error([])
new_primPlusInt(Neg(zzz5230), zzz458, zzz455, zzz457, da, db) → new_primPlusInt1(zzz5230, new_sizeFM1(zzz458, da, db))
new_compare28(zzz400000, zzz3300000, False) → new_compare113(zzz400000, zzz3300000, new_ltEs6(zzz400000, zzz3300000))
new_esEs22(zzz400000, zzz3300000, ty_Double) → new_esEs16(zzz400000, zzz3300000)
new_gt2(zzz404, zzz403) → new_esEs8(new_compare7(zzz404, zzz403), GT)
new_esEs31(zzz400, zzz300, ty_@0) → new_esEs14(zzz400, zzz300)
new_gt(zzz330, zzz3440, bc) → new_esEs8(new_compare13(zzz330, zzz3440, bc), GT)
new_esEs20(zzz4001, zzz3001, ty_Char) → new_esEs17(zzz4001, zzz3001)
new_ltEs7(zzz40000, zzz330000) → new_fsEs(new_compare6(zzz40000, zzz330000))
new_ltEs15(Right(zzz400000), Right(zzz3300000), bfc, app(ty_Ratio, cbf)) → new_ltEs11(zzz400000, zzz3300000, cbf)
new_primPlusNat1(Zero, Zero) → Zero
new_ltEs6(LT, EQ) → True
new_mkBalBranch6Size_l(zzz730, zzz731, zzz734, zzz152, bc, bd) → new_sizeFM0(zzz152, bc, bd)
new_addToFM_C0(EmptyFM, zzz330, zzz331, bc, bd) → Branch(zzz330, zzz331, Pos(Succ(Zero)), new_emptyFM(bc, bd), new_emptyFM(bc, bd))
new_ltEs6(GT, LT) → False
new_esEs29(zzz400, Just(zzz3300), ty_Int) → new_esEs18(zzz400, zzz3300)
new_asAs(True, zzz202) → zzz202
new_primMulNat0(Succ(zzz400100), Succ(zzz300100)) → new_primPlusNat0(new_primMulNat0(zzz400100, Succ(zzz300100)), zzz300100)
new_esEs26(zzz400000, zzz3300000, app(app(app(ty_@3, bfh), bga), bgb)) → new_esEs5(zzz400000, zzz3300000, bfh, bga, bgb)
new_splitLT4(Branch(zzz25830, zzz25831, zzz25832, zzz25833, zzz25834), zzz260, bh, ca) → new_splitLT21(zzz25830, zzz25831, zzz25832, zzz25833, zzz25834, zzz260, new_lt15(Just(zzz260), zzz25830, bh), bh, ca)
new_esEs11(zzz4000, zzz3000, ty_Char) → new_esEs17(zzz4000, zzz3000)
new_esEs11(zzz4000, zzz3000, app(ty_[], eh)) → new_esEs10(zzz4000, zzz3000, eh)
new_esEs29(zzz400, Just(zzz3300), ty_Ordering) → new_esEs8(zzz400, zzz3300)
new_ltEs8(Just(zzz400000), Just(zzz3300000), ty_Integer) → new_ltEs16(zzz400000, zzz3300000)
new_esEs31(zzz400, zzz300, ty_Bool) → new_esEs12(zzz400, zzz300)
new_compare8(zzz400000, zzz3300000) → new_compare28(zzz400000, zzz3300000, new_esEs8(zzz400000, zzz3300000))
new_ltEs15(Right(zzz400000), Right(zzz3300000), bfc, ty_Integer) → new_ltEs16(zzz400000, zzz3300000)
new_lt13(zzz400001, zzz3300001, ty_@0) → new_lt16(zzz400001, zzz3300001)
new_esEs29(zzz400, Just(zzz3300), ty_Integer) → new_esEs9(zzz400, zzz3300)
new_esEs29(zzz400, Just(zzz3300), ty_@0) → new_esEs14(zzz400, zzz3300)
new_fsEs(zzz205) → new_not(new_esEs8(zzz205, GT))
new_esEs31(zzz400, zzz300, app(ty_Ratio, cda)) → new_esEs13(zzz400, zzz300, cda)
new_ltEs20(zzz400001, zzz3300001, ty_Float) → new_ltEs9(zzz400001, zzz3300001)
new_esEs26(zzz400000, zzz3300000, app(app(ty_@2, bgc), bgd)) → new_esEs6(zzz400000, zzz3300000, bgc, bgd)
new_esEs23(zzz400001, zzz3300001, app(app(app(ty_@3, dah), dba), dbb)) → new_esEs5(zzz400001, zzz3300001, dah, dba, dbb)
new_lt20(zzz400000, zzz3300000, ty_Int) → new_lt9(zzz400000, zzz3300000)
new_esEs19(zzz4000, zzz3000, ty_Ordering) → new_esEs8(zzz4000, zzz3000)
new_esEs26(zzz400000, zzz3300000, ty_Double) → new_esEs16(zzz400000, zzz3300000)
new_esEs31(zzz400, zzz300, ty_Float) → new_esEs15(zzz400, zzz300)
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(app(ty_Either, cbc), cbd), bfd) → new_ltEs15(zzz400000, zzz3300000, cbc, cbd)
new_ltEs15(Left(zzz400000), Right(zzz3300000), bfc, bfd) → True
new_esEs30(Nothing, bc) → True
new_addToFM_C10(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, False, bc, bd) → Branch(zzz330, zzz331, zzz3442, zzz3443, zzz3444)
new_ltEs18(zzz400002, zzz3300002, app(app(ty_@2, dce), dcf)) → new_ltEs4(zzz400002, zzz3300002, dce, dcf)
new_ltEs20(zzz400001, zzz3300001, ty_Ordering) → new_ltEs6(zzz400001, zzz3300001)
new_lt17(zzz400000, zzz3300000, dc, dd) → new_esEs8(new_compare16(zzz400000, zzz3300000, dc, dd), LT)
new_intersectFM_C2Lts2(zzz273, zzz274, zzz275, zzz276, zzz277, zzz278, cc, cd) → new_splitLT21(Just(zzz273), zzz274, zzz275, zzz276, zzz277, zzz278, new_lt15(Just(zzz278), Just(zzz273), cc), cc, cd)
new_compare5(:%(zzz400000, zzz400001), :%(zzz3300000, zzz3300001), ty_Int) → new_compare7(new_sr(zzz400000, zzz3300001), new_sr(zzz3300000, zzz400001))
new_esEs21(zzz4002, zzz3002, ty_Bool) → new_esEs12(zzz4002, zzz3002)
new_compare30(zzz400, zzz330, bc) → new_compare27(Just(zzz400), zzz330, new_esEs29(zzz400, zzz330, bc), bc)
new_splitLT12(zzz2580, zzz2581, zzz2582, zzz2583, zzz2584, zzz260, False, bh, ca) → zzz2583
new_addToFM_C10(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, bc, bd) → new_mkBalBranch(zzz3440, zzz3441, zzz3443, new_addToFM_C0(zzz3444, zzz330, zzz331, bc, bd), bc, bd)
new_lt5(zzz400000, zzz3300000, cg) → new_esEs8(new_compare5(zzz400000, zzz3300000, cg), LT)
new_esEs25(zzz4001, zzz3001, app(app(ty_Either, bda), bdb)) → new_esEs7(zzz4001, zzz3001, bda, bdb)
new_mkBalBranch6Size_r(zzz730, zzz731, zzz734, zzz152, bc, bd) → new_sizeFM0(zzz734, bc, bd)
new_esEs31(zzz400, zzz300, app(app(ty_@2, bbe), bbf)) → new_esEs6(zzz400, zzz300, bbe, bbf)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_primCompAux0(zzz220, EQ) → zzz220
new_ltEs15(Right(zzz400000), Left(zzz3300000), bfc, bfd) → False
new_compare29(zzz400000, zzz3300000, False) → new_compare111(zzz400000, zzz3300000, new_ltEs14(zzz400000, zzz3300000))
new_ltEs15(Left(zzz400000), Left(zzz3300000), app(app(ty_@2, cba), cbb), bfd) → new_ltEs4(zzz400000, zzz3300000, cba, cbb)
new_splitLT21(zzz2580, zzz2581, zzz2582, zzz2583, zzz2584, zzz260, False, bh, ca) → new_splitLT12(zzz2580, zzz2581, zzz2582, zzz2583, zzz2584, zzz260, new_gt0(zzz260, zzz2580, bh), bh, ca)
new_ltEs20(zzz400001, zzz3300001, ty_Char) → new_ltEs17(zzz400001, zzz3300001)
new_primEqInt(Pos(Zero), Neg(Zero)) → True
new_primEqInt(Neg(Zero), Pos(Zero)) → True
new_mkVBalBranch3MkVBalBranch10(zzz3330, zzz3331, zzz3332, zzz3333, zzz3334, zzz3440, zzz3441, zzz3442, zzz3443, zzz3444, zzz330, zzz331, True, bc, bd) → new_mkBalBranch(zzz3330, zzz3331, zzz3333, new_mkVBalBranch0(zzz330, zzz331, zzz3334, Branch(zzz3440, zzz3441, zzz3442, zzz3443, zzz3444), bc, bd), bc, bd)
new_primCmpInt(Neg(Succ(zzz40000)), Pos(zzz33000)) → LT
new_ltEs15(Left(zzz400000), Left(zzz3300000), ty_Float, bfd) → new_ltEs9(zzz400000, zzz3300000)
new_not(True) → False
new_primMinusNat0(Succ(zzz152200), Succ(zzz41000)) → new_primMinusNat0(zzz152200, zzz41000)
new_esEs25(zzz4001, zzz3001, ty_Integer) → new_esEs9(zzz4001, zzz3001)

The set Q consists of the following terms:

new_esEs19(x0, x1, ty_Integer)
new_ltEs11(x0, x1, x2)
new_lt20(x0, x1, app(app(ty_Either, x2), x3))
new_esEs24(x0, x1, ty_Ordering)
new_ltEs15(Right(x0), Left(x1), x2, x3)
new_ltEs15(Left(x0), Right(x1), x2, x3)
new_lt14(x0, x1, ty_Double)
new_ltEs8(Just(x0), Just(x1), ty_Int)
new_primPlusInt1(x0, Pos(x1))
new_compare13(x0, x1, x2)
new_esEs7(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_primMinusNat0(Zero, Zero)
new_intersectFM_C2Gts0(x0, x1, x2, x3, x4, x5, x6)
new_lt20(x0, x1, app(app(ty_@2, x2), x3))
new_esEs29(x0, Just(x1), app(ty_Maybe, x2))
new_ltEs18(x0, x1, app(app(ty_Either, x2), x3))
new_esEs23(x0, x1, app(ty_Ratio, x2))
new_esEs29(x0, Just(x1), ty_Integer)
new_esEs11(x0, x1, ty_@0)
new_primPlusNat0(Succ(x0), x1)
new_primPlusNat0(Zero, x0)
new_esEs21(x0, x1, app(ty_Ratio, x2))
new_pePe(True, x0)
new_esEs7(Right(x0), Right(x1), x2, ty_Integer)
new_ltEs19(x0, x1, ty_Int)
new_asAs(True, x0)
new_lt13(x0, x1, ty_Ordering)
new_esEs4(Just(x0), Just(x1), app(ty_[], x2))
new_compare25(x0, x1, True, x2, x3, x4)
new_esEs12(False, False)
new_esEs7(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_addToFM_C20(x0, x1, x2, x3, x4, x5, x6, False, x7, x8)
new_compare([], :(x0, x1), x2)
new_compare16(x0, x1, x2, x3)
new_ltEs8(Just(x0), Just(x1), ty_Integer)
new_primCmpInt(Pos(Succ(x0)), Pos(Zero))
new_ltEs15(Left(x0), Left(x1), ty_Ordering, x2)
new_lt11(x0, x1)
new_esEs11(x0, x1, app(app(ty_@2, x2), x3))
new_splitGT22(x0, x1, x2, x3, x4, True, x5, x6)
new_splitGT22(x0, x1, x2, x3, x4, False, x5, x6)
new_compare111(x0, x1, False)
new_esEs11(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare10(x0, x1, False, x2, x3)
new_esEs26(x0, x1, ty_Int)
new_esEs20(x0, x1, ty_Bool)
new_compare15(x0, x1)
new_lt14(x0, x1, ty_Ordering)
new_esEs26(x0, x1, ty_Double)
new_compare110(x0, x1, False, x2)
new_esEs29(x0, Just(x1), app(ty_[], x2))
new_esEs26(x0, x1, app(app(ty_@2, x2), x3))
new_esEs21(x0, x1, app(app(ty_@2, x2), x3))
new_esEs24(x0, x1, ty_@0)
new_primEqInt(Neg(Succ(x0)), Neg(Zero))
new_compare19(Char(x0), Char(x1))
new_primPlusNat1(Succ(x0), Zero)
new_compare28(x0, x1, False)
new_esEs20(x0, x1, app(ty_[], x2))
new_esEs22(x0, x1, ty_Integer)
new_esEs22(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs19(x0, x1, app(ty_[], x2))
new_splitLT3(Branch(x0, x1, x2, x3, x4), x5, x6)
new_ltEs18(x0, x1, app(ty_[], x2))
new_compare6(Double(x0, x1), Double(x2, x3))
new_esEs4(Just(x0), Just(x1), ty_Bool)
new_esEs11(x0, x1, ty_Float)
new_primCompAux0(x0, LT)
new_lt17(x0, x1, x2, x3)
new_esEs7(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_ltEs14(True, False)
new_ltEs14(False, True)
new_ltEs15(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_mkBalBranch6MkBalBranch3(x0, x1, x2, x3, False, x4, x5)
new_esEs11(x0, x1, app(ty_[], x2))
new_sizeFM1(EmptyFM, x0, x1)
new_esEs8(GT, GT)
new_mkBalBranch(x0, x1, x2, x3, x4, x5)
new_primMulInt(Pos(x0), Pos(x1))
new_addToFM_C20(x0, x1, x2, x3, x4, x5, x6, True, x7, x8)
new_esEs7(Right(x0), Right(x1), x2, ty_Double)
new_lt10(x0, x1)
new_esEs7(Left(x0), Right(x1), x2, x3)
new_esEs7(Right(x0), Left(x1), x2, x3)
new_ltEs15(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_compare11(x0, x1, app(ty_[], x2))
new_lt20(x0, x1, app(ty_[], x2))
new_primEqInt(Neg(Succ(x0)), Pos(x1))
new_primEqInt(Pos(Succ(x0)), Neg(x1))
new_esEs24(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_primPlusInt0(x0, Neg(x1))
new_esEs8(LT, LT)
new_lt20(x0, x1, ty_Double)
new_lt18(x0, x1, x2, x3)
new_esEs19(x0, x1, ty_Int)
new_splitLT4(Branch(x0, x1, x2, x3, x4), x5, x6, x7)
new_esEs4(Just(x0), Just(x1), app(ty_Ratio, x2))
new_ltEs7(x0, x1)
new_esEs11(x0, x1, app(app(ty_Either, x2), x3))
new_addToFM_C10(x0, x1, x2, x3, x4, x5, x6, False, x7, x8)
new_compare114(x0, x1, True, x2, x3)
new_compare11(x0, x1, ty_@0)
new_esEs19(x0, x1, app(ty_Ratio, x2))
new_primEqInt(Pos(Succ(x0)), Pos(Zero))
new_lt13(x0, x1, ty_Double)
new_ltEs15(Right(x0), Right(x1), x2, ty_Float)
new_ltEs15(Right(x0), Right(x1), x2, ty_Double)
new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_lt13(x0, x1, ty_@0)
new_esEs4(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_ltEs6(EQ, EQ)
new_lt20(x0, x1, ty_Integer)
new_esEs29(x0, Just(x1), app(app(ty_Either, x2), x3))
new_ltEs8(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_ltEs18(x0, x1, ty_Int)
new_splitLT21(x0, x1, x2, x3, x4, x5, True, x6, x7)
new_lt14(x0, x1, ty_Int)
new_esEs8(LT, GT)
new_esEs8(GT, LT)
new_compare27(Nothing, Nothing, False, x0)
new_esEs19(x0, x1, app(ty_[], x2))
new_esEs10([], [], x0)
new_esEs31(x0, x1, ty_Double)
new_lt13(x0, x1, app(ty_Maybe, x2))
new_mkBalBranch6MkBalBranch11(x0, x1, x2, x3, x4, x5, x6, EmptyFM, False, x7, x8)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_compare24(x0, x1, False, x2, x3)
new_ltEs6(LT, EQ)
new_ltEs6(EQ, LT)
new_lt8(x0, x1, x2, x3, x4)
new_lt7(x0, x1)
new_esEs7(Left(x0), Left(x1), ty_Float, x2)
new_esEs7(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_ltEs15(Left(x0), Left(x1), ty_Int, x2)
new_ltEs15(Right(x0), Right(x1), x2, ty_Integer)
new_esEs11(x0, x1, ty_Integer)
new_ltEs8(Just(x0), Just(x1), app(ty_Ratio, x2))
new_esEs20(x0, x1, ty_Float)
new_lt9(x0, x1)
new_primCmpNat0(Succ(x0), Zero)
new_primEqNat0(Zero, Zero)
new_intersectFM_C2Gts1(x0, x1, x2, x3, x4, x5, x6)
new_splitLT22(x0, x1, x2, x3, x4, True, x5, x6)
new_ltEs15(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_esEs18(x0, x1)
new_esEs19(x0, x1, ty_Ordering)
new_esEs19(x0, x1, ty_Char)
new_lt20(x0, x1, ty_Ordering)
new_esEs4(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_ltEs8(Nothing, Nothing, x0)
new_esEs19(x0, x1, app(app(ty_@2, x2), x3))
new_esEs4(Nothing, Nothing, x0)
new_sizeFM0(EmptyFM, x0, x1)
new_esEs22(x0, x1, ty_Char)
new_splitLT12(x0, x1, x2, x3, x4, x5, False, x6, x7)
new_esEs24(x0, x1, app(ty_Maybe, x2))
new_ltEs15(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_esEs22(x0, x1, app(ty_Maybe, x2))
new_lt20(x0, x1, ty_@0)
new_ltEs15(Left(x0), Left(x1), app(ty_[], x2), x3)
new_ltEs13(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_esEs20(x0, x1, app(ty_Maybe, x2))
new_esEs23(x0, x1, ty_Char)
new_esEs25(x0, x1, app(app(ty_@2, x2), x3))
new_esEs11(x0, x1, app(ty_Maybe, x2))
new_esEs4(Nothing, Just(x0), x1)
new_primMulNat0(Zero, Zero)
new_lt13(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt19(x0, x1)
new_sizeFM(x0, x1, x2, x3, x4, x5, x6)
new_compare27(Just(x0), Just(x1), False, x2)
new_ltEs8(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_esEs6(@2(x0, x1), @2(x2, x3), x4, x5)
new_mkBalBranch6MkBalBranch11(x0, x1, x2, x3, x4, x5, x6, Branch(x7, x8, x9, x10, x11), False, x12, x13)
new_ltEs15(Right(x0), Right(x1), x2, ty_Ordering)
new_compare11(x0, x1, ty_Int)
new_esEs4(Just(x0), Just(x1), ty_Int)
new_lt20(x0, x1, app(ty_Ratio, x2))
new_ltEs18(x0, x1, ty_Bool)
new_ltEs19(x0, x1, app(app(ty_Either, x2), x3))
new_addToFM_C0(Branch(x0, x1, x2, x3, x4), x5, x6, x7, x8)
new_lt15(x0, x1, x2)
new_primMulNat0(Zero, Succ(x0))
new_esEs29(x0, Nothing, x1)
new_compare11(x0, x1, ty_Double)
new_compare14(x0, x1, x2, x3, x4)
new_mkBalBranch6MkBalBranch5(x0, x1, x2, x3, False, x4, x5)
new_esEs31(x0, x1, ty_Integer)
new_ltEs20(x0, x1, ty_Char)
new_esEs22(x0, x1, app(ty_Ratio, x2))
new_ltEs20(x0, x1, ty_Bool)
new_mkVBalBranch0(x0, x1, EmptyFM, x2, x3, x4)
new_primEqInt(Neg(Zero), Pos(Succ(x0)))
new_primEqInt(Pos(Zero), Neg(Succ(x0)))
new_splitGT12(x0, x1, x2, x3, x4, True, x5, x6)
new_ltEs8(Just(x0), Just(x1), ty_Double)
new_esEs4(Just(x0), Just(x1), ty_Integer)
new_primCmpNat0(Succ(x0), Succ(x1))
new_splitLT21(x0, x1, x2, x3, x4, x5, False, x6, x7)
new_esEs23(x0, x1, app(ty_Maybe, x2))
new_sIZE_RATIO
new_lt12(x0, x1)
new_lt14(x0, x1, ty_Char)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_esEs25(x0, x1, app(app(ty_Either, x2), x3))
new_esEs31(x0, x1, ty_Bool)
new_compare8(x0, x1)
new_ltEs17(x0, x1)
new_compare11(x0, x1, app(app(ty_Either, x2), x3))
new_esEs26(x0, x1, app(ty_Ratio, x2))
new_esEs26(x0, x1, ty_Integer)
new_gt(x0, x1, x2)
new_lt14(x0, x1, app(app(ty_Either, x2), x3))
new_sizeFM0(Branch(x0, x1, x2, x3, x4), x5, x6)
new_esEs14(@0, @0)
new_compare12(Float(x0, x1), Float(x2, x3))
new_esEs19(x0, x1, ty_Double)
new_esEs29(x0, Just(x1), app(ty_Ratio, x2))
new_esEs23(x0, x1, ty_@0)
new_esEs11(x0, x1, ty_Int)
new_splitLT3(EmptyFM, x0, x1)
new_lt20(x0, x1, app(ty_Maybe, x2))
new_esEs10([], :(x0, x1), x2)
new_compare30(x0, x1, x2)
new_primPlusNat1(Succ(x0), Succ(x1))
new_ltEs6(GT, LT)
new_ltEs6(LT, GT)
new_compare17(x0, x1, x2, x3)
new_esEs29(x0, Just(x1), ty_@0)
new_esEs31(x0, x1, ty_Char)
new_esEs23(x0, x1, ty_Ordering)
new_ltEs15(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_ltEs19(x0, x1, ty_Integer)
new_ltEs18(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare(:(x0, x1), :(x2, x3), x4)
new_pePe(False, x0)
new_esEs26(x0, x1, ty_Char)
new_ltEs8(Just(x0), Just(x1), ty_@0)
new_esEs27(x0, x1, ty_Integer)
new_compare29(x0, x1, True)
new_esEs7(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_esEs25(x0, x1, app(ty_Maybe, x2))
new_splitGT12(x0, x1, x2, x3, x4, False, x5, x6)
new_esEs11(x0, x1, ty_Double)
new_esEs7(Right(x0), Right(x1), x2, ty_Int)
new_ltEs18(x0, x1, ty_Char)
new_ltEs8(Just(x0), Just(x1), app(ty_Maybe, x2))
new_esEs21(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs31(x0, x1, app(ty_Ratio, x2))
new_mkBalBranch6MkBalBranch4(x0, x1, x2, x3, False, x4, x5)
new_ltEs15(Left(x0), Left(x1), ty_Integer, x2)
new_mkBranch(x0, x1, x2, x3, x4, x5, x6)
new_esEs23(x0, x1, ty_Float)
new_ltEs15(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_primMulNat0(Succ(x0), Zero)
new_esEs29(x0, Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_primEqInt(Neg(Zero), Neg(Succ(x0)))
new_ltEs19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs15(Left(x0), Left(x1), ty_Bool, x2)
new_esEs26(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs15(Right(x0), Right(x1), x2, app(ty_[], x3))
new_esEs20(x0, x1, app(app(ty_Either, x2), x3))
new_compare27(Nothing, Just(x0), False, x1)
new_splitGT4(Branch(x0, x1, x2, x3, x4), x5, x6, x7)
new_addToFM(x0, x1, x2, x3, x4)
new_primPlusInt(Pos(x0), x1, x2, x3, x4, x5)
new_ltEs20(x0, x1, app(app(ty_@2, x2), x3))
new_primPlusNat1(Zero, Zero)
new_ltEs8(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_ltEs18(x0, x1, ty_Integer)
new_compare110(x0, x1, True, x2)
new_esEs26(x0, x1, ty_Bool)
new_compare(:(x0, x1), [], x2)
new_primPlusInt0(x0, Pos(x1))
new_esEs26(x0, x1, ty_Float)
new_esEs16(Double(x0, x1), Double(x2, x3))
new_esEs29(x0, Just(x1), ty_Char)
new_esEs7(Left(x0), Left(x1), app(ty_[], x2), x3)
new_compare24(x0, x1, True, x2, x3)
new_esEs25(x0, x1, ty_Char)
new_splitLT12(x0, x1, x2, x3, x4, x5, True, x6, x7)
new_ltEs19(x0, x1, ty_@0)
new_lt14(x0, x1, app(ty_Maybe, x2))
new_ltEs20(x0, x1, ty_Int)
new_mkBalBranch6Size_r(x0, x1, x2, x3, x4, x5)
new_esEs26(x0, x1, app(ty_Maybe, x2))
new_esEs22(x0, x1, app(app(ty_@2, x2), x3))
new_esEs7(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_ltEs18(x0, x1, ty_Float)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_esEs20(x0, x1, app(ty_Ratio, x2))
new_esEs26(x0, x1, app(app(ty_Either, x2), x3))
new_esEs20(x0, x1, ty_Int)
new_compare5(:%(x0, x1), :%(x2, x3), ty_Integer)
new_esEs31(x0, x1, app(app(ty_@2, x2), x3))
new_primPlusInt2(Branch(x0, x1, Pos(x2), x3, x4), x5, x6, x7, x8, x9)
new_esEs24(x0, x1, app(ty_[], x2))
new_esEs4(Just(x0), Just(x1), ty_Ordering)
new_lt6(x0, x1)
new_ltEs15(Left(x0), Left(x1), ty_@0, x2)
new_lt14(x0, x1, ty_Bool)
new_esEs21(x0, x1, ty_Char)
new_ltEs9(x0, x1)
new_esEs21(x0, x1, ty_Double)
new_esEs25(x0, x1, ty_Float)
new_esEs7(Right(x0), Right(x1), x2, ty_@0)
new_intersectFM_C2Gts2(x0, x1, x2, x3, x4, x5, x6, x7)
new_compare11(x0, x1, ty_Integer)
new_gt0(x0, x1, x2)
new_ltEs18(x0, x1, app(app(ty_@2, x2), x3))
new_esEs21(x0, x1, ty_Bool)
new_primMulNat0(Succ(x0), Succ(x1))
new_esEs7(Right(x0), Right(x1), x2, ty_Float)
new_lt20(x0, x1, ty_Bool)
new_lt16(x0, x1)
new_ltEs10(x0, x1, x2)
new_ltEs20(x0, x1, app(ty_Ratio, x2))
new_splitGT21(x0, x1, x2, x3, x4, x5, True, x6, x7)
new_compare18(Integer(x0), Integer(x1))
new_esEs31(x0, x1, app(ty_[], x2))
new_ltEs19(x0, x1, app(ty_Ratio, x2))
new_mkBalBranch6MkBalBranch5(x0, x1, x2, x3, True, x4, x5)
new_ltEs15(Left(x0), Left(x1), ty_Double, x2)
new_esEs7(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_esEs12(True, True)
new_sizeFM1(Branch(x0, x1, x2, x3, x4), x5, x6)
new_esEs24(x0, x1, ty_Integer)
new_esEs29(x0, Just(x1), ty_Int)
new_esEs4(Just(x0), Just(x1), ty_Float)
new_esEs21(x0, x1, ty_Ordering)
new_mkVBalBranch0(x0, x1, Branch(x2, x3, x4, x5, x6), Branch(x7, x8, x9, x10, x11), x12, x13)
new_esEs24(x0, x1, ty_Double)
new_splitLT11(x0, x1, x2, x3, x4, True, x5, x6)
new_ltEs19(x0, x1, ty_Bool)
new_intersectFM_C2Lts(x0, x1, x2, x3, x4, x5)
new_lt13(x0, x1, ty_Int)
new_intersectFM_C2Lts0(x0, x1, x2, x3, x4, x5, x6)
new_esEs22(x0, x1, app(ty_[], x2))
new_lt14(x0, x1, ty_Integer)
new_mkVBalBranch3MkVBalBranch10(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, True, x12, x13)
new_ltEs18(x0, x1, ty_@0)
new_esEs7(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_esEs19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt13(x0, x1, ty_Char)
new_primEqInt(Pos(Zero), Neg(Zero))
new_primEqInt(Neg(Zero), Pos(Zero))
new_esEs29(x0, Just(x1), app(app(ty_@2, x2), x3))
new_primEqNat0(Succ(x0), Succ(x1))
new_esEs24(x0, x1, ty_Char)
new_addToFM_C0(EmptyFM, x0, x1, x2, x3)
new_esEs23(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs29(x0, Just(x1), ty_Ordering)
new_ltEs8(Just(x0), Just(x1), ty_Float)
new_mkBalBranch6MkBalBranch01(x0, x1, x2, x3, x4, x5, x6, x7, True, x8, x9)
new_esEs26(x0, x1, ty_Ordering)
new_esEs24(x0, x1, app(app(ty_Either, x2), x3))
new_esEs19(x0, x1, app(ty_Maybe, x2))
new_esEs19(x0, x1, ty_Float)
new_esEs20(x0, x1, ty_@0)
new_ltEs4(@2(x0, x1), @2(x2, x3), x4, x5)
new_esEs21(x0, x1, app(ty_Maybe, x2))
new_primCmpInt(Pos(Zero), Pos(Zero))
new_primCompAux1(x0, x1, x2, x3)
new_esEs8(EQ, EQ)
new_esEs7(Left(x0), Left(x1), ty_Bool, x2)
new_compare11(x0, x1, ty_Ordering)
new_lt20(x0, x1, ty_Float)
new_esEs29(x0, Just(x1), ty_Float)
new_compare11(x0, x1, app(app(ty_@2, x2), x3))
new_lt14(x0, x1, app(ty_Ratio, x2))
new_esEs24(x0, x1, ty_Int)
new_esEs7(Right(x0), Right(x1), x2, ty_Char)
new_primEqInt(Neg(Zero), Neg(Zero))
new_intersectFM_C2Lts1(x0, x1, x2, x3, x4, x5, x6)
new_asAs(False, x0)
new_ltEs20(x0, x1, app(ty_Maybe, x2))
new_esEs24(x0, x1, app(app(ty_@2, x2), x3))
new_esEs4(Just(x0), Just(x1), ty_Double)
new_primMinusNat0(Zero, Succ(x0))
new_mkBalBranch6MkBalBranch01(x0, x1, x2, x3, x4, EmptyFM, x5, x6, False, x7, x8)
new_compare11(x0, x1, app(ty_Ratio, x2))
new_esEs29(x0, Just(x1), ty_Bool)
new_compare113(x0, x1, True)
new_mkBalBranch6MkBalBranch01(x0, x1, x2, x3, x4, Branch(x5, x6, x7, x8, x9), x10, x11, False, x12, x13)
new_lt13(x0, x1, ty_Float)
new_primCmpNat0(Zero, Succ(x0))
new_intersectFM_C2Lts2(x0, x1, x2, x3, x4, x5, x6, x7)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_ltEs15(Left(x0), Left(x1), ty_Char, x2)
new_lt13(x0, x1, app(app(ty_Either, x2), x3))
new_esEs22(x0, x1, app(app(ty_Either, x2), x3))
new_esEs10(:(x0, x1), :(x2, x3), x4)
new_ltEs15(Right(x0), Right(x1), x2, ty_Bool)
new_mkVBalBranch3Size_l(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_esEs11(x0, x1, ty_Bool)
new_esEs22(x0, x1, ty_Double)
new_compare112(x0, x1, False, x2, x3, x4)
new_esEs20(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs8(Just(x0), Nothing, x1)
new_ltEs18(x0, x1, app(ty_Ratio, x2))
new_esEs25(x0, x1, ty_Bool)
new_mkBalBranch6MkBalBranch4(x0, x1, EmptyFM, x2, True, x3, x4)
new_ltEs19(x0, x1, app(ty_Maybe, x2))
new_esEs28(x0, x1, ty_Int)
new_lt14(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs15(Float(x0, x1), Float(x2, x3))
new_primMulInt(Neg(x0), Neg(x1))
new_compare5(:%(x0, x1), :%(x2, x3), ty_Int)
new_compare27(x0, x1, True, x2)
new_esEs20(x0, x1, ty_Char)
new_ltEs19(x0, x1, ty_Char)
new_lt13(x0, x1, app(ty_Ratio, x2))
new_intersectFM_C2Gts(x0, x1, x2, x3, x4, x5)
new_primPlusInt1(x0, Neg(x1))
new_primCmpInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_compare29(x0, x1, False)
new_ltEs15(Right(x0), Right(x1), x2, ty_@0)
new_esEs20(x0, x1, ty_Double)
new_ltEs6(GT, GT)
new_lt13(x0, x1, ty_Bool)
new_esEs7(Left(x0), Left(x1), ty_Int, x2)
new_lt4(x0, x1, x2)
new_esEs23(x0, x1, ty_Integer)
new_esEs8(EQ, GT)
new_esEs8(GT, EQ)
new_esEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_splitGT4(EmptyFM, x0, x1, x2)
new_ltEs8(Nothing, Just(x0), x1)
new_mkVBalBranch0(x0, x1, Branch(x2, x3, x4, x5, x6), EmptyFM, x7, x8)
new_compare10(x0, x1, True, x2, x3)
new_esEs31(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt14(x0, x1, app(app(ty_@2, x2), x3))
new_lt13(x0, x1, app(ty_[], x2))
new_esEs4(Just(x0), Just(x1), app(ty_Maybe, x2))
new_compare11(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_primCmpInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_esEs4(Just(x0), Nothing, x1)
new_primEqInt(Pos(Zero), Pos(Succ(x0)))
new_primCmpNat0(Zero, Zero)
new_ltEs18(x0, x1, app(ty_Maybe, x2))
new_ltEs8(Just(x0), Just(x1), ty_Char)
new_esEs7(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_ltEs15(Left(x0), Left(x1), ty_Float, x2)
new_esEs27(x0, x1, ty_Int)
new_ltEs6(LT, LT)
new_primPlusInt2(EmptyFM, x0, x1, x2, x3, x4)
new_esEs31(x0, x1, app(app(ty_Either, x2), x3))
new_esEs7(Left(x0), Left(x1), ty_Integer, x2)
new_ltEs15(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_esEs22(x0, x1, ty_Bool)
new_ltEs15(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_primPlusNat1(Zero, Succ(x0))
new_ltEs18(x0, x1, ty_Double)
new_lt13(x0, x1, ty_Integer)
new_esEs22(x0, x1, ty_Int)
new_primMinusNat0(Succ(x0), Zero)
new_lt5(x0, x1, x2)
new_esEs4(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_esEs28(x0, x1, ty_Integer)
new_esEs17(Char(x0), Char(x1))
new_mkBalBranch6MkBalBranch3(x0, x1, x2, EmptyFM, True, x3, x4)
new_ltEs15(Right(x0), Right(x1), x2, ty_Int)
new_emptyFM(x0, x1)
new_mkBalBranch6MkBalBranch3(x0, x1, x2, Branch(x3, x4, x5, x6, x7), True, x8, x9)
new_esEs19(x0, x1, app(app(ty_Either, x2), x3))
new_primPlusInt(Neg(x0), x1, x2, x3, x4, x5)
new_lt20(x0, x1, ty_Char)
new_esEs25(x0, x1, ty_Integer)
new_splitGT3(EmptyFM, x0, x1)
new_esEs13(:%(x0, x1), :%(x2, x3), x4)
new_esEs21(x0, x1, app(app(ty_Either, x2), x3))
new_esEs23(x0, x1, ty_Double)
new_esEs4(Just(x0), Just(x1), ty_Char)
new_ltEs20(x0, x1, ty_Ordering)
new_esEs12(False, True)
new_esEs12(True, False)
new_esEs31(x0, x1, ty_Float)
new_compare28(x0, x1, True)
new_esEs24(x0, x1, app(ty_Ratio, x2))
new_mkBalBranch6Size_l(x0, x1, x2, x3, x4, x5)
new_esEs25(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_sr(x0, x1)
new_ltEs19(x0, x1, app(app(ty_@2, x2), x3))
new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_compare9(@0, @0)
new_splitGT11(x0, x1, x2, x3, x4, x5, True, x6, x7)
new_esEs31(x0, x1, ty_Ordering)
new_esEs11(x0, x1, ty_Char)
new_ltEs19(x0, x1, ty_Double)
new_fsEs(x0)
new_ltEs14(True, True)
new_esEs31(x0, x1, ty_Int)
new_esEs21(x0, x1, ty_Integer)
new_ltEs14(False, False)
new_compare26(x0, x1, False, x2, x3)
new_ltEs20(x0, x1, app(ty_[], x2))
new_esEs23(x0, x1, app(ty_[], x2))
new_lt20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs5(x0, x1)
new_esEs11(x0, x1, ty_Ordering)
new_esEs25(x0, x1, ty_Int)
new_esEs23(x0, x1, ty_Bool)
new_ltEs20(x0, x1, ty_Float)
new_primEqNat0(Zero, Succ(x0))
new_not(True)
new_ltEs20(x0, x1, app(app(ty_Either, x2), x3))
new_esEs7(Right(x0), Right(x1), x2, ty_Bool)
new_ltEs15(Right(x0), Right(x1), x2, ty_Char)
new_primCompAux0(x0, EQ)
new_splitLT4(EmptyFM, x0, x1, x2)
new_compare27(Just(x0), Nothing, False, x1)
new_esEs7(Left(x0), Left(x1), ty_Ordering, x2)
new_esEs7(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_esEs25(x0, x1, ty_Ordering)
new_ltEs20(x0, x1, ty_Integer)
new_esEs26(x0, x1, ty_@0)
new_esEs20(x0, x1, ty_Integer)
new_esEs23(x0, x1, app(app(ty_@2, x2), x3))
new_splitGT21(x0, x1, x2, x3, x4, x5, False, x6, x7)
new_primCmpInt(Neg(Succ(x0)), Neg(Zero))
new_compare111(x0, x1, True)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_compare31(x0, x1)
new_not(False)
new_esEs30(Nothing, x0)
new_splitGT11(x0, x1, x2, x3, x4, x5, False, x6, x7)
new_esEs21(x0, x1, ty_@0)
new_ltEs6(GT, EQ)
new_ltEs6(EQ, GT)
new_esEs31(x0, x1, app(ty_Maybe, x2))
new_lt13(x0, x1, app(app(ty_@2, x2), x3))
new_splitLT11(x0, x1, x2, x3, x4, False, x5, x6)
new_primPlusInt2(Branch(x0, x1, Neg(x2), x3, x4), x5, x6, x7, x8, x9)
new_compare26(x0, x1, True, x2, x3)
new_esEs7(Right(x0), Right(x1), x2, ty_Ordering)
new_lt14(x0, x1, ty_Float)
new_ltEs20(x0, x1, ty_@0)
new_esEs23(x0, x1, ty_Int)
new_primMinusNat0(Succ(x0), Succ(x1))
new_ltEs19(x0, x1, ty_Ordering)
new_esEs24(x0, x1, ty_Bool)
new_mkVBalBranch3MkVBalBranch10(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, False, x12, x13)
new_esEs29(x0, Just(x1), ty_Double)
new_compare112(x0, x1, True, x2, x3, x4)
new_mkVBalBranch3Size_r(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
new_esEs8(LT, EQ)
new_esEs8(EQ, LT)
new_lt14(x0, x1, ty_@0)
new_esEs21(x0, x1, app(ty_[], x2))
new_esEs7(Right(x0), Right(x1), x2, app(ty_[], x3))
new_esEs26(x0, x1, app(ty_[], x2))
new_ltEs8(Just(x0), Just(x1), ty_Ordering)
new_esEs4(Just(x0), Just(x1), ty_@0)
new_splitLT22(x0, x1, x2, x3, x4, False, x5, x6)
new_esEs25(x0, x1, ty_Double)
new_compare11(x0, x1, app(ty_Maybe, x2))
new_esEs7(Left(x0), Left(x1), ty_Double, x2)
new_compare114(x0, x1, False, x2, x3)
new_compare25(x0, x1, False, x2, x3, x4)
new_ltEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare7(x0, x1)
new_esEs24(x0, x1, ty_Float)
new_ltEs8(Just(x0), Just(x1), app(ty_[], x2))
new_esEs25(x0, x1, app(ty_[], x2))
new_compare([], [], x0)
new_esEs31(x0, x1, ty_@0)
new_esEs19(x0, x1, ty_Bool)
new_esEs25(x0, x1, ty_@0)
new_mkVBalBranch3MkVBalBranch20(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, True, x12, x13)
new_ltEs15(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_lt20(x0, x1, ty_Int)
new_mkBalBranch6MkBalBranch4(x0, x1, Branch(x2, x3, x4, x5, x6), x7, True, x8, x9)
new_esEs7(Left(x0), Left(x1), ty_@0, x2)
new_sr0(Integer(x0), Integer(x1))
new_esEs20(x0, x1, ty_Ordering)
new_compare11(x0, x1, ty_Char)
new_gt1(x0, x1)
new_primEqInt(Pos(Zero), Pos(Zero))
new_esEs22(x0, x1, ty_Ordering)
new_esEs21(x0, x1, ty_Int)
new_primCompAux0(x0, GT)
new_ltEs18(x0, x1, ty_Ordering)
new_esEs9(Integer(x0), Integer(x1))
new_ltEs15(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_esEs7(Left(x0), Left(x1), ty_Char, x2)
new_esEs19(x0, x1, ty_@0)
new_esEs5(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_mkBalBranch6MkBalBranch11(x0, x1, x2, x3, x4, x5, x6, x7, True, x8, x9)
new_esEs22(x0, x1, ty_Float)
new_esEs21(x0, x1, ty_Float)
new_primEqNat0(Succ(x0), Zero)
new_ltEs20(x0, x1, ty_Double)
new_esEs22(x0, x1, ty_@0)
new_esEs10(:(x0, x1), [], x2)
new_mkVBalBranch3MkVBalBranch20(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, False, x12, x13)
new_esEs25(x0, x1, app(ty_Ratio, x2))
new_compare11(x0, x1, ty_Float)
new_ltEs8(Just(x0), Just(x1), ty_Bool)
new_esEs30(Just(x0), x1)
new_splitGT3(Branch(x0, x1, x2, x3, x4), x5, x6)
new_addToFM_C10(x0, x1, x2, x3, x4, x5, x6, True, x7, x8)
new_compare113(x0, x1, False)
new_ltEs12(x0, x1)
new_lt14(x0, x1, app(ty_[], x2))
new_gt2(x0, x1)
new_ltEs19(x0, x1, ty_Float)
new_ltEs16(x0, x1)
new_esEs11(x0, x1, app(ty_Ratio, x2))
new_compare11(x0, x1, ty_Bool)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_esEs23(x0, x1, app(app(ty_Either, x2), x3))

We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs: